AWS IAM Identity Centerインスタンス作成をTerraformでやってみた
IAM Identity Centerのインスタンスを作成する必要がありました。
今回はTerraformでやってみました。
IAM Identity Centerのインスタンス作成はAWS CCプロバイダーで可能
2025年12月時点の最新のAWSプロバイダー(Version 6.27.0)では、IAM Identity Centerのインスタンス作成はできません。
AWSCCプロバイダーでは可能です。
awscc_sso_instance | Resources | hashicorp/awscc | Terraform | Terraform Registry
AWS CCプロバイダーとは
AWS Cloud Control Provider(AWSCC)は、AWS Cloud ControlAPIを基盤として自動生成されるTerraformプロバイダーです。
このプロバイダーはCloudFormationスキーマから自動的に生成されます。
CloudFormationレジストリからの情報は週次で自動更新されるため、AWS側で新たに対応されたリソースが、すぐにTerraformでも利用できるようになります。
既存のAWSプロバイダーとAWSCCプロバイダーを併用することも可能です。
Docs overview | hashicorp/awscc | Terraform | Terraform Registry
やってみた
Terraformを使ってリソースをデプロイ
以下のファイルを用意します。
IAM Identity Centerのインスタンス作成とIAM Identity Centerユーザーを定義しています。
インスタンス作成をAWS CCプロバイダー、IAM Identity Centerユーザー作成をAWS Providerで行っています。
インスタンス作成をAWS CCで行っているのは前述のとおりです。
IAM Identity Centerユーザー作成をAWS Providerで行っているのは、AWSCCプロバイダーではIAM Identity Centerのユーザー作成ができないからです。
2025年12月時点ではCloudFormationではIAM Identity Centerのユーザー作成に対応していません。
よって、CloudFormationスキーマから自動的に生成されるAWS CCプロバイダーでも対応していません。
その他の注意点として、AWS CCプロバイダーはデフォルトタグに対応していません。
タグを付けたい場合は、リソース個別にタグを付与する必要があります。
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 6.27"
}
awscc = {
source = "hashicorp/awscc"
version = "~> 1.67"
}
}
}
provider "aws" {
region = var.region
default_tags {
tags = {
ManagedBy = "Terraform"
}
}
}
provider "awscc" {
region = var.region
}
# IAM Identity Center Instance
resource "awscc_sso_instance" "this" {
name = var.instance_name
tags = [{
key = "ManagedBy"
value = "Terraform"
}]
}
# Identity Store User
resource "aws_identitystore_user" "this" {
identity_store_id = awscc_sso_instance.this.identity_store_id
display_name = join(" ", [var.user_given_name, var.user_family_name])
user_name = var.user_email
name {
family_name = var.user_family_name
given_name = var.user_given_name
}
emails {
value = var.user_email
primary = true
}
}
variable "region" {
description = "AWS region to deploy IAM Identity Center"
type = string
default = "ap-northeast-1"
}
variable "instance_name" {
description = "Name for the IAM Identity Center instance"
type = string
default = "identity-center"
}
variable "user_given_name" {
description = "Given name (first name) of the user"
type = string
}
variable "user_family_name" {
description = "Family name (last name) of the user"
type = string
}
variable "user_email" {
description = "Email address of the user"
type = string
}
次にterraform.tfvarsファイルを用意します。内容は環境に応じて書き換えてください。
region = "ap-northeast-1"
user_given_name = "Taro"
user_family_name = "Yamada"
user_email = "yamada.taro@example.com"
任意の方法でAWS認証情報をセットして、terraformを実行してリソースを作成します。
terraform init
terraform plan
terraform apply
動作確認
AWSコンソールからIAM Identity Centerを確認してみます。
有効化されていることが確認できました。

ユーザーも作成されていました。

おわりに
非Organizations環境のAWSアカウントでKiroをサブスクライブしたいことがあり、AWS IAM Identity Centerのインスタンス作成が必要でした。
せっかくなので、Terraformでやってみました。
以前TerraformでIAM Identity Centerの管理を行った際は、手動でインスタンス作成をしました。
「AWS CCでできるのでは?」と思い今回やってみました。
デフォルトタグが使えない点は少し不便ですが、認証情報周りはAWSプロバイダーと同様でよく特にハマる部分なく利用できました。
今後はもっと活用していきたいと思います。






