Terraform で直接作成される AWS Identity Center ユーザー

Identity Center の ID ソースと、ユーザーの作成・アクセス回収手順を一致させてください。

説明

ユーザーの直接作成は、AWS IAM Identity Center でサポートされる管理方法です。ただし、外部 IdP や中央ディレクトリを ID ソースとする組織では、手動や Terraform による管理を同期・退職者対応の手順と一致させる必要があります。

アカウントの無効化、異動、アクセス回収の責任を明確にしてください。ユーザーの作成だけで AWS アカウントへのアクセスは付与されず、許可セットと割り当ても別途管理が必要です。

想定される影響

  • 管理が分散すると、退職や異動に伴うアカウントと権限の回収が遅れるおそれがあります。
  • 中央の管理手順から漏れたユーザーに、不要なアクセスが残る場合があります。

対処方法

  • 選択した Identity Center の ID ソースに合わせ、作成・変更・削除の手順を統一してください。外部 IdP を使う場合は、対応するプロビジョニング連携を構成してください。
  • 直接管理するユーザーには承認とライフサイクル管理の責任者を定め、ユーザー・グループとアカウントの割り当てを定期的に確認してください。

例

実際の Identity Center インスタンスと ID ソースを用意してください。データソースに切り替えるだけでは、外部 IdP との同期は構成されません。

変更前

hcl
resource "aws_identitystore_user" "example" {
  identity_store_id = tolist(data.aws_ssoadmin_instances.example.identity_store_ids)[0]

  display_name = "John Doe"
  user_name    = "johndoe"

  name {
    given_name  = "John"
    family_name = "Doe"
  }

  emails {
    value = "john@example.com"
  }
}

変更後

hcl
data "aws_ssoadmin_instances" "example" {}

# このユーザーは外部 IdP から SCIM で事前に作成されます。
# Terraform はユーザーを作成せず、既存ユーザーを参照します。
data "aws_identitystore_user" "example" {
  identity_store_id = tolist(data.aws_ssoadmin_instances.example.identity_store_ids)[0]

  alternate_identifier {
    unique_attribute {
      attribute_path  = "UserName"
      attribute_value = "john.doe@example.com"
    }
  }
}

補足:

  • 変更前: Terraform でユーザーを管理します。組織で選択した管理方式に合うか確認してください。
  • 変更後: 作成済みのユーザーを参照します。管理リソースの削除で実際のユーザーまで誤って削除しないよう、移行手順を確認してください。

参考資料