

# クロスアカウント調査
<a name="Investigations-cross-account"></a>

 クロスアカウント CloudWatch 調査を使用すると、一元化されたモニタリングアカウントから複数の AWS アカウント にまたがるアプリケーション問題を調査できます。この機能を使用すると、モニタリングアカウントに加えて最大 25 個のアカウント間でテレメトリデータ、メトリクス、およびログを関連付けて、分散アプリケーションの包括的な可視性を取得し、複雑なマルチアカウントシナリオをトラブルシューティングできます。

**Topics**
+ [前提条件](#Investigations-cross-account-prereq)
+ [クロスアカウントアクセス用のモニタリングアカウントをセットアップする](#Investigations-cross-account-monitoring-account)
+ [ソースアカウント (複数可) をクロスアカウントアクセス用にセットアップする](#Investigations-cross-account-source-account)
+ [マルチアカウントの問題の調査](#Investigations-cross-account-investigation)

## 前提条件
<a name="Investigations-cross-account-prereq"></a>
+ マルチアカウント調査では、クロスアカウントテレメトリを表示するために、クロスアカウントオブザーバビリティが既に設定されている必要があります。前提条件を満たすには、[クロスアカウントオブザーバビリティ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)または[クロスアカウントダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)を設定します。
+ 調査グループをセットアップします。クロスアカウントオブザーバビリティの場合、これはモニタリングアカウントに存在する必要があります。ソースアカウントで設定し、そこで単一アカウント調査を実行することもできます。

## クロスアカウントアクセス用のモニタリングアカウントをセットアップする
<a name="Investigations-cross-account-monitoring-account"></a>

**クロスアカウントアクセス用のモニタリングアカウントをセットアップする**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. 左のナビゲーションペインで、**[AI Operations]**、**[設定]** を選択します。

1. **[クロスアカウントアクセスの設定]** で、**[設定]** を選択します。

1. 最大 25 個のアカウントのアカウント ID を **[ソースアカウントを一覧表示]** セクションに追加します。

1. IAM ロールを更新します。

   1. 自動的に
      + **[アシスタントロールを自動的に更新する (推奨)]** を選択した場合は、指定したソースアカウントでアシスタントロールを引き受けるために必要な `sts:AssumeRole` ステートメントを含む `AIOpsAssistantCrossAccountPolicy-${guid}` という名前のカスタマー管理ポリシーが作成されます。自動更新オプションを選択すると、ソースアカウントの IAM ロール名がデフォルトで `AIOps-CrossAccountInvestigationRole` になります。

------
#### [ JSON ]

****  

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": [
                    "arn:aws:iam::777777777777:role/AIOps-CrossAccountInvestigationRole",
                    "arn:aws:iam::555555555555:role/AIOps-CrossAccountInvestigationRole",
                    "arn:aws:iam::666666666666:role/AIOps-CrossAccountInvestigationRole"
                ]
            }
        }
        ```

------
      + モニタリングアカウントの所有者がクロスアカウント設定からソースアカウントを削除した場合、IAM ポリシーは自動的に更新されません。常に最小限のアクセス許可が付与されるように、IAM ロールとポリシーを手動で更新する必要があります。
      + ソースアカウントの削除時にアクセス許可が手動で更新されなかった場合、ロールあたりの管理ポリシー数の上限に達する可能性があります。調査ロールにアタッチされている未使用の管理ポリシーをすべて削除する必要があります。

   1. 手動
      + 次の例は、アシスタントロールに必要な信頼ポリシーを示しています。

------
#### [ JSON ]

****  

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Sid": "AllowAIOpsAssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "aiops.amazonaws.com"
                    },
                    "Action": "sts:AssumeRole",
                    "Condition": {
                        "StringEquals": {
                            "sts:ExternalId": "arn:aws:aiops:{{us-east-1}}:{{123456789012}}:investigation-group/AaBbcCDde1EfFG2g{{}}"
                        }
                    }
                }
            ]
        }
        ```

------

        AWS CLI を使用してカスタムソースアカウントロールを作成し、次のコマンドを使用して `AIOpsAssistantPolicy` をロールにアタッチして、プレースホルダー値を環境に適した値に置き換えることができます。

        ```
        aws iam create-role
         --role-name {{custom-role-name}}
         --assume-role-policy-document 
            '{ 
               "Version": "2012-10-17",		 	 	  
               "Statement": [ 
                         { 
                              "Effect": "Allow",
                              "Principal": { "AWS": "{{investigation-group-role-arn}}"
                                  }, 
                              "Action": "sts:AssumeRole", 
                              "Condition": {
                                         "StringEquals": { 
                                                  "sts:ExternalId": "{{investigation-group-arn}}"
                                                    } } } ] }' 
        
        aws iam attach-role-policy 
         --role-name {{custom-role-name}}
         --policy-arn arn:aws:iam::aws:policy/AIOpsAssistantPolicy
        ```
      + クロスアカウントアクセスを付与するには、モニタリングアカウントのアシスタントロールのアクセス許可ポリシーに以下が含まれている必要があります。モニタリングアカウントを手動で設定する場合、ロール名は任意の名前にすることができます。デフォルトは `AIOps-CrossAccountInvestigationRole` ではありません。各ソースアカウントのアシスタントロールの名前を必ず指定してください。

------
#### [ JSON ]

****  

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": [
                    "arn:aws:iam::{{777777777777}}:role/{{custom_source_account_role_name}}",
                    "arn:aws:iam::{{555555555555}}:role/{{custom_source_account_role_name}}",
                    "arn:aws:iam::{{666666666666}}:role/{{custom_source_account_role_name}}"
                ]
            }
        }
        ```

------
      + AWS CLI を使用して、次のコマンドを使用してモニタリングアカウント調査グループをカスタムソースアカウントロール ARN で更新し、プレースホルダー値を環境に適した値に置き換えます。

        ```
        aws aiops update-investigation-group 
         --identifier {{investigation-group-id}}
         --cross-account-configurations sourceRoleArn={{sourceRoleArn1}}  sourceRoleArn={{sourceRoleArn2}}
        ```

        このコマンドの詳細については、「[AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/aiops/update-investigation-group.html)」を参照してください。

## ソースアカウント (複数可) をクロスアカウントアクセス用にセットアップする
<a name="Investigations-cross-account-source-account"></a>

1. **[アシスタントロールを自動的に更新する]** オプションを選択してモニタリングアカウントを設定した場合は、`AIOps-CrossAccountInvestigationRole` という名前の IAM ロールをプロビジョニングします。手動セットアップオプションを使用した場合は、カスタマイズされたソースアカウントのロール名を持つ IAM ロールをプロビジョニングします。

   1. IAM コンソールで、AWS 管理ポリシー `AIOpsAssistantPolicy` をロールにアタッチします。

   1. ソースアカウントのロールの信頼ポリシーは次のようになります。`ExternalID` はポリシーで指定する必要があります。モニタリングアカウント調査グループ ARN を使用します。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::123456789012:role/investigation-role-name"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "sts:ExternalId": "investigation-group-arn"
                      }
                  }
              }
          ]
      }
      ```

------

1. これは、各ソースアカウントで実行する必要があります。

1. コンソールを使用してモニタリングアカウントロールを設定すると、ソースアカウントのロール名はデフォルトで `AIOps-CrossAccountInvestionRole` になります。

1. モニタリングアカウントにログインし、**[調査グループ]**、**[設定]** の順に移動して、**[クロスアカウント設定]** を選択してアクセスを確認します。

   ソースアカウントがクロスアカウント設定に表示され、ステータスが **[モニタリングアカウントにリンク済み]** になっていることを確認します。

## マルチアカウントの問題の調査
<a name="Investigations-cross-account-investigation"></a>

CloudWatch クロスアカウントオブザーバビリティダッシュボードを設定すると、モニタリングアカウントのクロスアカウントテレメトリから表示および調査できるようになります。ソースアカウントの調査を実行するには、そのソースアカウントからクロスアカウントテレメトリを追加する必要があります。

調査の作成方法の詳細については、「[環境内の運用上の問題を調査する](Investigations-Investigate.md)」を参照してください。