はじめに

今回は、2026年2月3日に発表されたAWS IAM Identity Centerのマルチリージョンレプリケーション機能について説明します。

AWSアカウントへの認証はすべての操作の起点となるため、災害対策の観点でも非常に重要です。しかし、これまではIAM Identity Centerの組織インスタンスが単一リージョンでしか利用できず、リージョン障害時にAWS環境へアクセスできなくなるリスクがありました。

マルチリージョンレプリケーション機能の発表により、IAM Identity Centerの組織インスタンスを複数リージョンで利用できるようになり、リージョン障害が発生した場合でもIAM Identity Centerを利用しているAWSアカウントへのアクセスが可能となりました。

同機能により、IAM Identity Center内に設定されている「ユーザー」「グループ」「アクセス権限セット」などの設定データが、レプリカリージョンへ自動的に同期されます。これにより、プライマリリージョンに障害が発生した際にも、レプリカリージョンからシームレスにAWS環境へのアクセスを継続できます。

IAM Identity Centerのマルチリージョンレプリケーション機能の前提

IAM Identity Centerのマルチリージョンレプリケーション機能を利用するためには、公式ドキュメント記載の前提条件を満たす必要がありますが、主な前提条件は以下の2点です。

  • マルチリージョンのカスタマーマネージドキー(AWS KMSキー)を使用していること
  • 外部IDプロバイダー(IdP)に接続された IAM Identity Centerの組織インスタンスを使用していること

IAM Identity Centerのマルチリージョンレプリケーション機能の利用方法

それでは、IAM Identity Centerのマルチリージョンレプリケーション機能のセットアップ方法を紹介します。最終的には以下の画像のように外部IDプロバイダー(OktaやEntra IDなど)とIAM Identity Centerの組織インスタンスをSAML連携し、複数リージョンで利用できることを目指します。

本稿では事前に外部IDプロバイダーであるEntra IDとIAM Identity CenterがSAML連携されていることを前提とします。

また、もう一つの主要な前提条件である、マルチリージョンのカスタマーマネージドキーによる暗号化も実施済みとします。通常のKMSキーとは異なり、マルチリージョンキーは複数のリージョン間で同じ暗号化マテリアル(キーの元となるデータ)を共有する特殊なキーです。この特性を利用することで、プライマリリージョンとレプリカリージョンの両方で、IAM Identity Centerのデータを安全かつ透過的に暗号化・復号することが可能になります。

これらの具体的な作業はこちらを参考に実施してください。KMSのキーポリシーに関しては、難解な部分があるかもしれませんが、公式ドキュメントのこちらを参考に設定してください。

なお、筆者が検証のために設定したキーポリシーは下記となります。本稿では管理アカウントで設定を行っているため、管理者権限は管理アカウントのみとしていますが、委任管理者機能を利用している場合は、必要に応じて委任管理者アカウントのロールにも管理者権限を付与してください。


{
	"Version": "2012-10-17",
	"Id": "key-consolepolicy",
	"Statement": [
		{
			"Sid": "Enable IAM User Permissions",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::{管理アカウントのAWSアカウントID}:root"
			},
			"Action": "kms:*",
			"Resource": "*"
		},
		{
			"Sid": "Allow access for Key Administrators",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::{管理アカウントのAWSアカウントID}:role/aws-reserved/sso.amazonaws.com/ap-northeast-1/AWSReservedSSO_AdministratorAccess_XXXX"
			},
			"Action": [
				"kms:Create*",
				"kms:Describe*",
				"kms:Enable*",
				"kms:List*",
				"kms:Put*",
				"kms:Update*",
				"kms:Revoke*",
				"kms:Disable*",
				"kms:Get*",
				"kms:Delete*",
				"kms:TagResource",
				"kms:UntagResource",
				"kms:ScheduleKeyDeletion",
				"kms:CancelKeyDeletion",
				"kms:ReplicateKey",
				"kms:UpdatePrimaryRegion",
				"kms:RotateKeyOnDemand"
			],
			"Resource": "*"
		},
		{
			"Sid": "Allow use of the key",
			"Effect": "Allow",
			"Principal": {
				"AWS": [
					"arn:aws:iam::{管理アカウントのAWSアカウントID}:role/aws-reserved/sso.amazonaws.com/ap-northeast-1/AWSReservedSSO_AdministratorAccess_XXXXXX"
				]
			},
			"Action": [
				"kms:Encrypt",
				"kms:Decrypt",
				"kms:ReEncrypt*",
				"kms:GenerateDataKey*",
				"kms:DescribeKey"
			],
			"Resource": "*"
		},
		{
			"Sid": "Allow attachment of persistent resources",
			"Effect": "Allow",
			"Principal": {
				"AWS": [
					"arn:aws:iam::{管理アカウントのAWSアカウントID}:role/aws-reserved/sso.amazonaws.com/ap-northeast-1/AWSReservedSSO_AdministratorAccess_XXXXXX"
				]
			},
			"Action": [
				"kms:CreateGrant",
				"kms:ListGrants",
				"kms:RevokeGrant"
			],
			"Resource": "*",
			"Condition": {
				"Bool": {
					"kms:GrantIsForAWSResource": "true"
				}
			}
		},
		{
			"Sid": "Allow_IdentityCenter_and_IdentityStore_to_use_the_KMS_key",
			"Effect": "Allow",
			"Principal": {
				"Service": [
					"sso.amazonaws.com",
					"identitystore.amazonaws.com"
				]
			},
			"Action": [
				"kms:Decrypt",
				"kms:ReEncryptTo",
				"kms:ReEncryptFrom",
				"kms:GenerateDataKeyWithoutPlaintext"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"aws:SourceAccount": [
						"{管理アカウントのAWSアカウントID}",
						"{委任管理者アカウントのAWSアカウントID}"
					]
				}
			}
		},
		{
			"Sid": "Allow_IdentityCenter_and_IdentityStore_to_describe_the_KMS_key",
			"Effect": "Allow",
			"Principal": {
				"Service": [
					"sso.amazonaws.com",
					"identitystore.amazonaws.com"
				]
			},
			"Action": "kms:DescribeKey",
			"Resource": "*"
		}
	]
}

また、プライマリリージョンでマルチリージョンのカスタマーマネージドキーを作成するだけではなく、レプリカキーの作成も必要なので、ご注意ください。今回は大阪リージョンにIAM Identity Centerのレプリカインスタンスを作るため、大阪リージョンにレプリカキーを作成しました。レプリカキーの作成方法はこちらを参考にしてください。

以下、具体的な設定手順を説明します。

(1)上記の前提を満たした状態でIAM Identity Centerの管理コンソールにアクセスし、サイドメニューから「設定」をクリックすると、下記画像のようにリージョンを追加できるようになっているので、「リージョンの追加」をクリックします。

(2)マルチリージョンのカスタマーマネージドキーを作成済みで、レプリカキーが作成されているリージョンがレプリケーション用に利用可能なAWSリージョンとして表示されるので、今回は大阪リージョンを選択して「リージョンを追加」ボタンをクリックします。

(3)レプリケーション処理が実行されますので、完了するまで待機します。完了すると、以下の2つ目の画像のようにリージョンが追加されていることが確認できます。

これでIAM Identity Centerのマルチリージョンレプリケーション機能のセットアップは完了です。続いて、Entra ID側での作業を行います。具体的な手順は公式ドキュメントにも記載があるのですが、少し手順が分かりにくい部分があったため、筆者が実際に行った手順を紹介したいと思います。

(1)Entra IDの管理コンソールにアクセスし、IAM Identity CenterとSAML連携しているエンタープライズアプリケーションを選択します。

(2)「シングルサインオン」タブを選択し、「基本的な SAML 構成」セクションの「編集」ボタンをクリックします。

(3)公式ドキュメントの手順に則りIAM Identity Centerのメタデータファイルを使ってセットアップしている場合は、下記画像のようにプライマリリージョンのIPv4 専用およびデュアルスタック(IPv4とIPv6の両方に対応した通信方式)の Assertion Consumer Service (ACS) の URL(IdPからの認証情報を受け取るAWS側のエンドポイント)がすでに設定されているかと思います。筆者の環境ではIPv4 専用のACSのURLが既定としています。

(4)ここで、「応答 URL の追加」リンクをクリックし、マルチリージョンレプリケーション機能のセットアップで追加したリージョンのIPv4 専用およびデュアルスタックの ACS の URLを追加し、「保存」ボタンをクリックします。筆者の環境では大阪リージョンを追加したため、大阪リージョンのACSのURLを追加しています。ACSのURLはIAM Identity Centerの「IAM Identity Centerのリージョン」セクションの「ACSのURLを表示」ボタンをクリックすることで確認が可能です。

(5)続いてエンタープライズアプリケーションの新規作成を行います。「新しいアプリケーション」リンクをクリックします。

※補足:なぜEntra IDにアプリを新規追加するのか?
手順4までの「既存アプリへのACS URL追加」は、AWS管理コンソール側からログインを開始するケース(SP-Initiated SSO)への対応です。既存アプリの既定URLはプライマリリージョンのままとすることで、通常時はメインの環境へリダイレクトされます。 一方で、Entra IDの「マイアプリ」画面から直接レプリカリージョンへログインするケース(IdP-Initiated SSO)を実現するには、マイアプリ上にレプリカへ飛ぶための専用アイコンを用意する必要があります。AWS公式ドキュメントでも推奨されている通り、手順5以降では「ブックマークアプリ(リンクされたサインオン)」として別アプリを追加作成し、レプリカ用のポータルURLをひもづけます。

(6)Microsoft Entra アプリギャラリーから「AWS IAM Identity Center (successor to AWS Single Sign-On)」を選択します。

(7)レプリカリージョンのIAM Identity Centerを指していることがわかるような名前に変更し、「作成」ボタンをクリックします。

(8)「2. シングルサインオンの設定」をクリックします。

(9)「リンク」をクリックします。

(10)「サインオン URL」として、レプリカリージョンのIAM Identity CenterのデュアルスタックもしくはIPv4 専用のアクセスポータルURLを入力し、「保存」ボタンをクリックします。

(11)サイドメニューの「ユーザーとグループ」からユーザーもしくはグループを選択し、割り当てを行います。

(12)2つのアプリ(エンタープライズアプリケーション)が割り当てられたユーザーで、Entra IDのマイアプリを表示すると、以下のように画像が2点表示されているかと思います。

 IAM Identity Centerのマルチリージョンレプリケーションに関する注意点

前述の前提条件の通り、IAM Identity Centerのマルチリージョンレプリケーション機能を利用するためには、IAM Identity Centerの内部ディレクトリをアイデンティティソースとして利用することができません。したがって、これまで外部IDプロバイダーを利用していなかったケースでは、導入のハードルになるかもしれません。

すでにIAM Identity Centerの内部ディレクトリをアイデンティティソースとして利用している本番運用をされている方もいらっしゃるかと思いますので、ぜひとも今後のアップデートでIAM Identity Centerの内部ディレクトリもマルチリージョンレプリケーション機能の対象となることを期待したいところです。

また、マルチリージョンレプリケーション機能ではなく、IAM Identity Center自体の制約となりますが、アイデンティティソースが1つしか指定できない点に不満をもつ方々も多いと思います。複数のアイデンティティソースの指定ができるようなアップデートについても期待したいところです。

まとめ

今回は、AWS IAM Identity Centerのマルチリージョンレプリケーション機能について説明しました。IAM Identity Centerの組織インスタンスを複数リージョンで利用できるようになったことで、リージョン障害が発生した場合でもIAM Identity Centerを利用しているAWSアカウントへのアクセスが可能となり、災害対策の観点で非常に重要なポイントが改善されました。今回紹介したセットアップ方法を参考に、ぜひマルチリージョンレプリケーション機能を利用してみてください。