
# keenauth_api_key

`keenauth_api_key` リソースは管理 API キーを追跡し、削除時にキーを失効させます。

## プロバイダーがキーを作成しない理由

API は、キーを作成するレスポンスでのみ生のキーを一度だけ返します。プロバイダーが作成したキーは失われるか、ステート(state)ファイルに書き込む必要があります。そのためプロバイダーは API キーを作成せず、生のキーを見ることも保存することもありません。キーを作成するプランはプランの段階で失敗します。

## CLI で作成してからインポート

1. `keenauth api-keys create` でキーを作成します。
2. 生のキーを、Vault やクラウドのシークレットマネージャーなど、シークレット管理ツールに保存します。
3. ID を指定してキーをインポートします:

```terraform
import {
  to = keenauth_api_key.ci
  id = "key_01j9zq3v8c5m2x7k4t6r1n0b3d"
}

resource "keenauth_api_key" "ci" {
  name        = "ci"
  type        = "restricted"
  permissions = ["applications:read", "users:read"]
  expires_at  = "2027-01-31T00:00:00Z"
}
```

生のキーをインポート ID として渡さないでください。

## キーは変更できません

すべての属性は省略可能です。属性を設定する場合は、キーと一致している必要があります。`expires_at` は UTC で、`Z` を付け、秒単位で記述してください。キーを変更するには、CLI で新しいキーを作成するか(`keenauth api-keys rotate` でローテーション)、新しいキーをインポートしてから古いリソースを削除します。

## 時間の経過とともに起こること

- `tofu destroy`(またはリソースの削除)でキーが失効します。
- 失効した、または期限切れのキーは、次の更新時にステートから削除されます。
- ステートには、生のキー、末尾 4 文字、最後に使用された IP のプレフィックス、作成者は含まれません。
