Microsoft Entra Permissions ManagementでAWSアカウントをオンボードしてみた
はじめに
こんにちは。大阪オフィスの林です。
Microsoft Entra Permissions Managementの機能を検証する機会がありましたので、まずはAWSアカウントのオンボード方法をまとめておきたいと思います。
Microsoft Entra Permissions Managementとは
Microsoft Entra Permissions Management(以下、EPMという)は、Microsoft Azure、Amazon Web Services(AWS)、Google Cloud Platform(GCP)において、あらゆるID、あらゆるリソースの権限を包括的に可視化、制御するクラウド基盤エンタイトルメント管理(CIEM)製品です。
Microsoft Entraとは
Microsoft Entraは、マイクロソフトのアイデンティティおよびアクセス製品の新しい製品ファミリ名だそうです。
Microsoft Entra is our new product family that encompasses all of Microsoft’s identity and access capabilities. The Entra family includes Microsoft Azure Active Directory (Azure AD), as well as two new product categories: Cloud Infrastructure Entitlement Management (CIEM) and decentralized identity. The products in the Entra family will help provide secure access to everything for everyone, by providing identity and access management, cloud infrastructure entitlement management, and identity verification.
つい先日、EPMの一般提供が開始されましたので、本エントリでははじめの一歩となるオンボードの方法をまとめておきたいと思います。
やってみた
トライアルライセンスの取得
トライアルでの利用が可能なので、今回はトライアルライセンスを使って触っていきたいと思います。
Microsoft 365 管理センターにサインインします。※ログインするユーザーには、Azure AD のグローバル管理者権限を与えておきます。
左のメニューから「課金情報」-「サービスを購入する」を選択し、検索ボックスに「Entra Permissions Management」と入力し検索します。
Microsoft Entra Permissions Managementの「詳細」を選択します。
トップ画面に遷移するので「サブスクリプション」を選択します。
Azure Active DirectoryおよびEPMでの設定
Azureにログインし、Azure Active Directoryのメニューから「CloudKnox のアクセス許可の管理」を選択します。
Azure Active Directoryのユーザーを選択してログインします。
データコレクターの中から「AWS」を選択し「Create Configuration」を選択します。
表示されたコマンドを参考にAzure ADにOIDCアプリを作成しします。
ただし表示されたコマンドをそのまま使用しAzure CLIからコマンド実行するとエラーとなりました。
identifierUris already exists.
というエラーの内容で、既に存在する「identifierUris」という旨のエラーが返ってきます。
ahaegag@Azure:~$ az ad app create --display-name "mciem-aws-oidc-connector" --identifier-uris "api://mciem-aws-oidc-app" Another object with the same value for property identifierUris already exists. ahaegag@Azure:~$
実際にはアプリの作成はされていないので原因は不明のままでしたが「URIを変える」か「--sign-in-audience
のオプションを入れる」のいずれかでコマンドはエラー無く実行できました。
- URIを変更する
az ad app create --display-name "mciem-aws-oidc-connector" --identifier-uris "api://mciem-aws-oidc-app-1"
--sign-in-audience
のオプションを入れる
az ad app create --display-name "mciem-aws-oidc-connector" --sign-in-audience AzureADMyOrg --identifier-uris "api://mciem-aws-oidc-app"
Azure ADの「アプリの登録」から作成したOIDCアプリを確認出来ます。
Azure ADに作成したOIDCアプリと連携するAWSアカウントを指定します。作成するロールはデフォルトの名称のままとし「Launch Template」を選択します。
CloudFormationが起動するので内容はそのままで「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」にチェックを入れ「スタックの作成」を選択します。
スタックがCREATE_COMPLETE
となったことを確認します。
このプロセスで作成されるAWSリソースは下記の3つでした。
- AzureADで作成したアプリのURIが指定されたOpenID ConnectのIDプロバイダー
- 信頼されたエンティティとして上記のIDプロバイダーが指定されたIAMロール
- 上記のIAMロールにアタッチされるIAMポリシー
Onboarding Modeで「Automatically Manage」を選択しAWS Organizationsの管理アカウントと任意のロール名を入力後、「Launch Template」を選択します。※「Automatically Manage」を選択することでAWS Organizationsのメンバーアカウントを自動検出してくれます。今回の検証では管理アカウント×1、メンバーアカウント×1の計2つのAWSアカウントの環境で検証をしていきたいと思います。
CloudFormationが起動するので内容はそのままで「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」にチェックを入れ「スタックの作成」を選択します。
スタックがCREATE_COMPLETE
となったことを確認します。
このプロセスで作成されるAWSリソースは下記の3つでした。
- IAMロール
- IAMポリシー * 2
ロギングアカウントの指定も出来るようですが、本エントリではロギングアカウントの指定はスキップします。「Next」を選択します。
最後にEPMからAWSアカウントの情報を収集できるように、IAMロールを作成します。AWSアカウントを入力し「Launch Template」を選択します。
CloudFormationが起動するので内容はそのままで「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」にチェックを入れ「スタックの作成」を選択します。
スタックがCREATE_COMPLETE
となったことを確認します。
このプロセスで作成されるAWSリソースは下記の3つでした。
- IAMロール
- IAMポリシー * 2
内容を確認し「Verify Now &Save」を選択します。
「Status」が「Discovering」となっています。しばらく待ちます。
「Status」が「Collectiong Inventory」に変わりました。もうしばらく待ちます。
「Status」が「Consented」に変わりました。もうしばらく待ちます。
管理アカウントとして指定したAWSアカウントがOnboardedになっていました。
AWS OrganizationsのメンバーアカウントにはIAMロールを作成していないので「Status」が「Collectiong Inventory」で止まっていました。
EPMから最後に実行したCloudFormationをメンバーアカウントでも実行しIAMロールを作成後「Rediscover」を選択します。
「Status」が「Discovering」となっています。しばらく待ちます。
「Status」が「Collectiong Inventory」に変わりました。もうしばらく待ちます。
「Status」が「Consented」に変わりました。もうしばらく待ちます。
「Status」が「Onboarded」に変わりました。ONLINEのカウントも用意しているAWSアカウント分の「2」になりました。
まとめ
初見のオンボードの設定では、一部躓くところはありましたが、何とかEPMとAWSアカウントを連携させることが出来ました。
本エントリではオンボードしただけですので、別のエントリにてEPMで利用できる機能の検証を進めたいと思います。
以上、大阪オフィスの林がお送りしました!