Microsoft Entra ID のエンタイトルメント管理機能を利用して AWS へのアクセスの承認を委任する方法

2023.11.11

Microsoft Entra ID のエンタイトルメント管理機能を利用して、AWS IAM Identity Center 経由の AWS アカウントへのアクセス権の付与を、アカウント管理者に委任する方法を検討してみました。Entra ID と IAM Identity Center 間は自動プロビジョニングを採用している前提において、AWS アカウントにアクセスしたい人は管理者への申請・承認により有効期限付きで利用できます。

AWS へのアクセスを集中管理する負荷を分散する案となります。さらに、有効期限を設定できるため、不要なアクセス権が残り続ける状況を防ぐこともできます。

申請・承認により AWS へのアクセスを管理するイメージ

Entra ID の Identity Governance を利用して申請・承認により AWS にアクセスするイメージを記載します。

事前に、Entra ID と IAM Identity Center 間は自動プロビジョニングの設定にしておき、AWS アカウントへのアクセス許可セットとグループの関連付けもしておきます。グループには承認者となるユーザー(下図では Manager)のみ所属させている状態です。

Identity Governance のアクセスパッケージ機能を利用して「User」は AWS へのアクセスを申請します。

承認後に「User」は「AWS Udon」グループのメンバーとなり、自動プロビジョニングにより AWS IAM Identity Center に同期され、AWS アカウント「111122223333」へアクセスできるようになります。

一定期間経過後、もしくは申請した経過後に「User」は「AWS Udon」グループから除外され、AWS にアクセスできなくなります。

以降では実際に設定してみたいと思います。

Entra ID の設定例

上述したイメージを実現する Entra ID における Identity Governance 機能の設定例を紹介します。

事前の設定

Identity Governance の設定前に今回の前提となる設定を記載します。

Entra ID のユーザーとグループは上述したイメージの図の通り作成済みとして進めます。

グループ一覧です。

グループ名 想定の設定
AWS Udon IAM Identity Center において、Udon プロジェクトが利用する AWS アカウントへの AdministratorAccess と ReadOnlyAccess 権限が付与されているグループ
AWS Soba IAM Identity Center において、Soba プロジェクトが利用する AWS アカウントへの AdministratorAccess と ReadOnlyAccess 権限が付与されているグループ
Developers アクセス限を申請できるユーザーのグループ

ユーザー一覧です。

ユーザー名 想定の設定
Udon Manager Udon プロジェクトの管理者、アクセス権の承認者
Soba Manager Soba プロジェクトの管理者、アクセス権の承認者
User アクセス権を申請するユーザー


また、Entra ID と AWS IAM Identity Center との自動プロビジョニング設定と IAM Identity Center におけるアクセス許可セットの関連付け設定は本ブログでは割愛します。次のブログを参照ください。

Entra ID において AWS IAM Identity Center を登録しているエンタープライズアプリケーションの「ユーザーとグループ」は次の通りです。


Identity Governance の設定

Identity Governance の設定ではカタログを作成した後にアクセスパッケージを作成します。カタログには AWS へのアクセスに関するリソースをすべて含め、アクセスパッケージでプロジェクト別のアクセス権の申請・承認の設定をします。

Entra ID のメニューに Identity Governance があります。


カタログの設定

始めにカタログを作成します。

カタログ名を入力して作成します。今回は外部ユーザーがカタログ内のアクセスパッケージを利用できない設定にしています。

作成したカタログを選択してリソースを追加します。

IAM Identity Center のエンタープライズアプリケーションと IAM Identity Center に同期しているグループを選択します。今回の想定シナリオでは IAM Identity Center のエンタープライズアプリケーションの追加は不要なのですが、将来的にユーザーに対して IAM Identity Center のエンタープライズアプリケーションを割り当てる場合もあるかもしれないので、含めておいたほうがよいかなと思いました。

選択後は「追加」して完了です。

以上でカタログの作成は完了です。


アクセスパッケージの設定

次に、アクセスパッケージを作成します。

アクセスパッケージ名を入力して、カタログは先ほど作成した「AWS」を選択します。

リソースロールには AWS に同期しており、アクセス許可セットが関連付けられているグループ「AWS Udon」を選択します。ロールは「Member」を指定します。この設定により承認後に申請したユーザーが「AWS Udon」のメンバーになります。

要求の設定では、アクセスパッケージを要求できるユーザーと承認できるユーザーを設定します。要求できるユーザーは「Developers」グループのメンバーとし、承認ユーザーは想定シナリオ通り「Udon Manager」を選択しています。

要求元情報は、今回はデフォルトのままで進めます。

ライフサイクルの設定では、有効な日数を 90 日として指定してみました。また、ユーザーが延長を申請することも可能にしています。今回はアクセスレビューは不要にしています。

カスタム拡張機能はデフォルトのままで進めます。

最後に、設定内容を確認して「作成」します。

以上で、アクセスパッケージの設定は完了です。

同様の手順で「Soba Manager」ユーザーを承認者とした「AWS Soba」アクセスパッケージも作成しました。

アクセスパッケージの申請・承認

実際にアクセスパッケージの申請と承認を試してみます。

申請と承認は マイアクセスポータル からできます。


「User」ユーザーのマイアクセスポータル画面から申請してみます。

「AWS Udon」のパッケージを要求してみます。期間と理由を入力して「アクセス権の要求」をクリックします。

次に「Udon Manager」側のマイアクセスポータルを見てみます。保留中の承認として先ほどの要求を確認できます。

承認します。その際にアクセスパッケージの詳細等の情報も確認できるようになっています。

承認後に「AWS Udon」グループのメンバーを確認すると、アクセスパッケージによりメンバーとして追加されたことが確認できました。

申請前、または申請した期間を過ぎると下図のようにグループのメンバーには含まれていませんでした。

承認された期間の間は「User」ユーザーの認証情報で AWS アクセスポータルにもアクセスできました。注意が必要な点として、自動プロビジョニングは 40 分間隔の同期のため、すぐには反映されない場合があることです。

以上で、アクセスパッケージの要求と承認の確認は終わりです。

さいごに

Microsoft Entra ID を利用して、AWS IAM Identity Center 経由の AWS アカウントのアクセス権設定を委任する方法を検討してみました。全ての AWS アカウントへのアクセスを一元管理する負荷が高い場合もあるため、負荷分散に役立つと思いました。

アクセスパッケージでは他にも色々なパターンの設定ができそうであり、もっと効率的な管理ができるかもしれません。

以上、このブログがどなたかのご参考になれば幸いです。