keenauth_management_client
keenauth_management_client リソースは、app_type = "management" のアプリケーションの管理 API アクセスを設定します。具体的には、アプリケーションのマシン間 (M2M) クライアントが管理 API を呼び出す際の権限と IP 許可リストを設定します。アプリケーションにつき記録は最大 1 件で、記録はアプリケーション ID で識別されます。
最小権限
このリソースは管理 API へのアクセスを付与します。範囲を絞った設定にしてください。
- 自動化に必要な権限のみを指定してください。たとえば、すべての
users:*権限ではなくusers:readのみを指定します。 allowed_cidrsは、クライアントが動作するネットワークに限定してください。- 自動化ごとに 1 つの管理アプリケーションを使用してください。そうすると、それぞれを個別に絞り込んだり削除したりできます。
設定を適用する API キーは、自身が持つ権限とネットワークのみを付与できます。
resource "keenauth_application" "ops" {
key = "ops-automation"
name = "Ops automation"
app_type = "management"
party = "first_party"
}
resource "keenauth_management_client" "ops" {
application_id = keenauth_application.ops.id
permissions = ["users:read", "applications:read"]
allowed_cidrs = ["203.0.113.0/24"]
}
署名キー
このリソースはシークレットもキーも保持しません。アプリケーションの公開鍵は、CLI またはダッシュボードから POST /v1/applications/{application_id}/credentials (type: public_key) を使用して登録してください。API は、このリソースでの jwks_uri および public_keys を拒否します。
プランにおける allowed_cidrs
- 記録の作成時に
allowed_cidrsを省略すると、API は呼び出し元 API キー自身のリストを書き込みます。キーにリストがない場合、クライアントに IP 制限はありません。プランには(known after apply)と表示されます。 - 記録が存在するようになった後に属性を省略すると、現在の値が維持されます。設定から削除してもリストはリセットされず、設定外で行われた変更は差分なしで受け入れられます。リストを管理するには、明示的に記述してください。
- 空のリストは、API が
[]を呼び出し元キーのリストに変換するため、プランの時点で拒否されます。代わりに属性を省略してください。 - 各ブロックは正規の形式で記述してください。ネットワークアドレスを記述し、IPv6 は小文字にします。たとえば
10.0.0.5/24ではなく10.0.0.0/24と記述します。
エラー
| エラー | 意味 |
|---|---|
403 insufficient_permissions |
これらの記録を管理できるのは API キーのみです。client_id + private_key ではなく、api_key で設定したプロバイダを使用してください。API キーの場合、制限付きキーに management-clients:read または management-clients:write がありません。 |
403 permission_escalation |
記録が、API キーが持たない権限またはネットワークを持つことになります。 |
作成時の 404 |
指定したアプリケーションが、API キーの環境に存在しません。 |
409 |
アプリケーションにはすでに記録があります。インポートしてください。 |
application_id 上の 422 |
アプリケーションの種類が management ではありません。 |
412 |
プラン作成後に記録が変更されました。何も変更されていないため、plan を再実行してください。 |
インポート
アプリケーション ID を指定してインポートします。
tofu import keenauth_management_client.ops app_01j9zq3v8c5m2x7k4t6r1n0b3d