アクセサーアカウントを使用したメンバーからマスターディスカバリーへ 目次 概要テストに使用する AWS コンソール構成 ユースケース - 1:認証情報による検出 ステップ - 1:アクセサーアカウント構成:(Account-A)ステップ - 2:マスターアカウント構成:(Account-B)ステップ - 3:メンバーアカウント構成:(Account-C)ステップ - 4:[ディスカバリーマネージャー] を使用してすべてのメンバーを検出するマスターアカウントのディスカバリースケジュールを作成 ユースケース - 2:認証情報を使用しない検出 (認証情報なしの検出) ステップ - 1:アクセサーアカウント構成:(Account-A)ステップ - 2:マスターアカウント構成:(Account-B)ステップ - 3:メンバーアカウント構成:(Account-C) 概要 ServiceNow AWS ディスカバリーは次のように構成できます マスターとメンバーにはデフォルトの「OrganizationAccountAccessRole」との信頼関係がありますが、組織検出では、メンバーアカウントはサブスクリプションとリソース検出にマスター資格情報を使用します。マスターとメンバーには CustomRole との信頼関係がありますが、組織の検出では、メンバーアカウントはサブスクリプションとリソース検出にマスター認証情報を使用します。マスターとメンバーには CustomRole との信頼関係がありますが、組織の検出では、メンバーアカウントはマスターとメンバー向けのサブスクリプションとリソース検出に一時的な認証情報を使用します。 この記事では、AWS コンソールと ServiceNow インスタンスのユースケースと設定例について説明します。 ユースケース 1. 認証情報による検出 2. 認証情報を使用しない検出 (認証情報なしの検出) テストに使用する AWS コンソール構成 S.No. アカウント タイプ アカウント ID 作成されたロール 1. Account-A アクセサーアカウント 2306 で終了 MemberRole 2. Account-B マスターアカウント 8211 で終了 MasterRole 3. Account-C メンバーアカウント 2944 で終了 MemberRole ユースケース - 1:認証情報による検出 シナリオ:まず、Account-A を使用して Account-B を検出します。次に、Account-B (内部的には Account-A) を使用して Account-C を検出します。 認証情報のあるアクセサーアカウントを使用して AWS メンバーからマスターへのクラウドディスカバリーを実行するには、以下の手順に従う必要があります。 ステップ - 1:アクセサーアカウント構成:(Account-A) AWS 側の構成 AWS コンソールでアクセサーアカウントにログインします。EC2 インスタンスを起動します。 インスタンス側の構成 EC2 インスタンスで MID サーバーを設定し、インスタンスに接続します。 アクセサーアカウント認証情報のエントリを認証情報テーブル (aws_credentials) に作成します。 サービスアカウントテーブル (cmdb_ci_cloud_service_account) にアクセサーアカウントのエントリを作成します。また、親アカウントが存在する場合はそのエントリも作成します。 親アカウントフィールドがある場合は、それに入力します。 現在のシナリオでは、アクセサーアカウントにはマスターアカウントである親があります。マスターアカウント構成については、ステップ - 2.2.1 で詳しく説明します。 関連リンクの [データセンターを検出] をクリックします。正常に完了した場合は、次のステップに進みます。そうでない場合は、構成を再確認してください。 ステップ - 2:マスターアカウント構成:(Account-B) AWS 側の構成 AWS コンソールでマスターアカウントにログインします。IAM ロールを作成し、次のように権限と信頼関係を付与します。 マスターポリシーによって、ロール (マスターロール) に任意のアカウント (*) のロール (メンバーロール) を受け取る権限を与えます。 インスタンス側の構成 サービスアカウントテーブルのマスターアカウント構成は次のとおりです。 マスターアカウントで作成されたロールの AWS クロス想定ロールパラメーターテーブルにエントリを追加します。 関連リンクの [データセンターを検出] をクリックします。検出が成功した場合は、準備完了です。 ステップ - 3:メンバーアカウント構成:(Account-C) AWS コンソールでマスターアカウントにログインします。次に示すように IAM ロールが必要です。これは、マスターアカウントで作成されたポリシーで使用されたものと同じ ARN です。 サービスアカウントテーブル (cmdb_ci_cloud_service_account) にメンバーアカウント (Account-C) のエントリを作成します。 AWS 組織想定ロールパラメーターテーブルのメンバーアカウント (Account-C) に作成された想定ロールのエントリを追加します。 Paris パッチ 5 より前のインスタンスを使用している場合は、[AWS 組織想定ロールパラメーター] テーブルの [アクセスロール名] フィールドに完全な ARN を追加してください。カスタムロールを使用している場合にのみ、このテーブルにエントリを追加する必要があります。「OrganizationAccountAccessRole」を使用している場合は、エントリを追加しないでください。 関連リンクの [データセンターを検出] をクリックします。検出が成功した場合は、準備完了です。 ステップ - 4:[ディスカバリーマネージャー] を使用してすべてのメンバーを検出するマスターアカウントのディスカバリースケジュールを作成 ユースケース - 2:認証情報を使用しない検出 (認証情報なしの検出) 資格情報なしのアクセサーアカウントを使用して AWS メンバーからマスターへのクラウドディスカバリーを実行するために、Service-now では「一時的なクラウドディスカバリー認証情報の AWS ロールを受け取る」というコンセプトを実装しています。 ステップ - 1:アクセサーアカウント構成:(Account-A) AWS 側の構成 AWS コンソールでアクセサーアカウント (Account-A) にログインします。EC2 インスタンスを起動し、IAM ロールをアタッチします。例:「MemberRole」。 IAM ロールの構成は次のとおりです:(MemberRole) ReadOnlyAccess ポリシーを作成し、新しく作成した IAM ロールにアタッチします。 IAM ロールの構成が完了したら、EC2 インスタンスに MID サーバーをセットアップし、それに Service-now インスタンスを指定します。 インスタンス側の構成 service-now インスタンスで、MID サーバー設定パラメーターに「mid.aws.instance_profile_name」を追加します。この設定パラメーターの値は、EC2 インスタンスにアタッチされた IAM ロールです (完全な ARN ではなく、ロール名のみです)。 サービスアカウントテーブル (cmdb_ci_cloud_service_account) にアクセサーアカウント (Account-A) のエントリを作成します。また、親アカウントが存在する場合はそのエントリも作成します。 関連リンクの [データセンターを検出] をクリックします。正常に完了した場合は、次のステップに進みます。そうでない場合は、構成を再確認してください。 ステップ - 2:マスターアカウント構成:(Account-B) AWS 側の構成: AWS コンソールでマスターアカウントにログインします。次に示すように IAM ロールが必要です。これは、アクセサーアカウントで作成されたポリシーで使用されたものと同じ ARN です。 インスタンス側の構成: サービスアカウント (cmdb_ci_cloud_service_account) テーブルのマスターアカウント構成は次のとおりです。 マスターアカウントで作成されたロールの AWS クロス想定ロールパラメーター (cloud_service_account_aws_cross_assume_role_params) テーブルにエントリを追加します。 関連リンクの [データセンターを検出] をクリックします。検出が成功した場合は、準備完了です。 ステップ - 3:メンバーアカウント構成:(Account-C) ユースケース - 1 のステップ 3 を参照してください。