AWS Organizations および一時認証情報Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 目次 概要AWS Organizations in London リリースのサポートNewyork リリースでの AWS Organizations のサポート一時的な認証情報機能、コンポーネント、アーキテクチャ、デザイン:AWS によって定義された標準ステップ一時認証情報の設定 アクセスロール名:ロールセッション名:セッションポリシー:クラウドサービスアカウント: トラブルシューティング追加情報 概要 Amazon Web Services には、AWS Organizations と呼ばれる機能があります。 メインアカウントメンバーアカウントメインとメンバー間の信頼関係、およびアクセスロールと権限/信頼ポリシー これにより効率が向上し、企業内の同じ組織に属する複数の AWS アカウントを一元管理できます。 London リリースでの AWS Organizations のサポート ServiceNow は AWS 組織のサポートを導入しました。 組織内のメンバーアカウントのディスカバリーメインアカウントの UI アクション [メンバーアカウントをリフレッシュ]cmdb_ci_cloud_service_account を設定ディスカバリーでは、メインアカウントの認証情報を使用して、メンバーアカウントの認証情報を必要とせずにクラウドリソースを検出します。 Newyork リリースでの AWS Organizations のサポート ServiceNow は追加のカスタマイズ機能を追加しました。 この機能を実現するには、「Assume Role」と呼ばれるセキュリティトークンサービス (STS) と呼ばれる Amazon AWS API を使用します。要件に応じてカスタマイズできるように、パラメーターの完全なセットをテーブルでこの API に公開しました。 一時的な認証情報 AWS Organizations に依存するクラウドディスカバリー、パターン、およびカスタム操作。メインアカウントに一時的な認証情報が必要な場合はいつでも、以下をカスタマイズできるようになりました。 アクセスロール メインアカウントとメンバーアカウントの間に信頼関係がある。 (デフォルトは「OrganizationAccountAccessRole」)メインアカウントは、メンバーアカウントの一時的な認証情報を取得するときにこのロールを引き受けます。 ロールセッション名 AWS CloudTrail に表示されます。 外部 ID 「混乱した代理問題」を解決できます。参照: AWS リソースへのアクセスを許可するときに外部 ID を使用する方法認証情報期間/TTL セッションポリシー メンバーアカウントへのアクセスに使用されるセッションの権限をさらに制限できるようにします。 多要素認証デバイスの MFA シリアル番号多要素認証ワンタイムコードの MFA トークンコード 上記の情報を収集するには、メンバーアカウントの詳細を使用して AWS コンソールにログインしてください。イベントを参照して「EventName: "AssumeRole"」を検索します。 機能、コンポーネント、アーキテクチャ、デザイン: 「cloud_service_account_aws_org_assume_role_params」という名前の新しいテーブル 参照「cmdb_ci_cloud_service_account」 優先順位階層 ディスカバリーは、アクセスしようとしているメンバーアカウントに関連付けられたパラメーターを参照します。 存在しない場合は、アクセスしようとしているメインアカウントにリンクされているパラメーターを検索します。存在しない場合は、デフォルト値を使用します。 新しいビジネスルール インスタンスの変更を MID サーバーに同期するビジネスルール「Discovery - Account Reload for AWS Orgs」「cloud_service_account_aws_org_assume_role_params」テーブルに変更があるときに、このビジネスルールが実行されます。 MID はスクリプト化された SOAP API を使用して、インスタンスからサービスアカウントデータをフェッチします。 SOAP サービス: GetMidInfoメソッド: GetCloudServiceAccountInfo MID サーバーは内部 API を使用してサービスアカウントの認証情報を取得します。 認証情報テーブルから AWS 認証情報をキャプチャするために使用されるメソッドは、「CloudServiceAccountCredentialsUtilresolveCredentialForAccount(serviceAccountId)」です。ディスカバリーが実行されると、まず上記の方法で認証情報テーブルを調べて認証情報を見つけ、認証情報がない場合は「cloud_service_account_aws_org_assume_role_params」で一時的な認証情報を調べます。 AWS によって定義された標準ステップ 理想的には、AWS Organizations ディスカバリーは、以下のように定義された基本的な最小限の手順で機能します。 ロールを切り替えるためのユーザー権限の付与 AWS Organizations ページの [アカウントの作成] オプションを使用してメンバーアカウントを追加し、ユーザーがそこに表示されているデフォルトのロール名「OrganizationAccountAccessRole」を変更していない場合、メンバーアカウントで「OrganizationAccountAccessRole」ロールがデフォルトで作成されます。それ以外の場合は、指定した名前のロールがメンバーアカウントに作成されます。[AWS Organizations] ページの [アカウントの招待] オプションを使用してメンバーアカウントを追加した場合は、 IAM->Roles->Create Role->Another AWS アカウントを作成し、メインアカウント ID を [アカウント ID] フィールドに入力します。 メインアカウントでは、 IAM->Policy->Create policy->Choose Service=STS->Actions=AssumeRole->Resources=Specific, Add ARN=メンバーアカウントで作成されたロール「OrganizationAccountAccessRole」のロール ARN を追加します。ポリシーを確認し、名前を追加して、ポリシーを作成します。 ステップ 3 は、ルートユーザーとしてログインするか、IAM ユーザーにポリシーの作成に必要な権限が与えられている場合は、IAM ユーザーとしてログインして実行できます。 IAM->Users->ロールを引き受けるべき IAM ユーザーレコード->権限の追加->ステップ 3 で作成したポリシーを選択します。 必要に応じて、「OrganizationAccountAccessRole」の代わりに別のロール名を選択できますが、手順は同じままです。 一時認証情報の設定 インスタンスにログインします。ナビゲーター >> クラウド管理 >> サービスアカウント >> 組織アクセスパラメーター >> AWS 組織想定ロールパラメーター新規作成 アクセスロール名: OrganizationAccountAccessRole 注:デフォルトでは OrganizationAccountAccessRole ですが、カスタム作成されたロールがある場合は、ここにカスタムロールを入力してください。 ロールセッション名: 想定ロールセッションは、AWS コンソールの「イベント履歴」の「イベント」で利用できます。 セッションポリシー: 以下の許可の例 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*" } ] } And { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" } ] } 拒否の例を以下に示します。 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "deny", "Action": "ec2:*", "Resource": "*" } ] } クラウドサービスアカウント: メインサービスアカウント トラブルシューティング AWS クラウドディスカバリーのベストプラクティスのトラブルシューティング 補足情報 AWS メインおよびメンバーアカウント Servicenow ディスカバリーのロール/権限FAQ:AWS メインアカウントと IAM ロールAWS メインディスカバリーで「メインアカウント ID を取得」ステップで NullPointerException エラーが発生しましたディスカバリー - AWS 組織における想定ロールの拡張