

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マルチアカウント実験の前提条件
<a name="multi-account-prerequisites"></a>

マルチアカウント実験で停止条件を使用するには、最初にクロスアカウントアラームを設定する必要があります。IAM ロールは、マルチアカウント実験テンプレートを作成するときに定義されます。テンプレートを作成する前に、必要な IAM ロールを作成できます。

**Topics**
+ [マルチアカウント実験のアクセス許可](#permissions)
+ [マルチアカウント実験の停止条件 (オプション)](#alarms-and-monitoring)
+ [マルチアカウント実験の安全レバー (オプション）](#safety-levers-for-multi-accounts)

## マルチアカウント実験のアクセス許可
<a name="permissions"></a>

マルチアカウント実験は、IAM ロールの連鎖**を使用して、 AWS FIS にターゲットアカウントのリソースでアクションを実行するアクセス許可を付与します。マルチアカウント実験の場合、各ターゲットアカウントとオーケストレーターアカウントで IAM ロールを設定します。これらの IAM ロールには、ターゲットアカウントとオーケストレーターアカウントの間、およびオーケストレーターアカウントと AWS FISとの間の信頼関係が必要です。

ターゲットアカウントの IAM ロールには、リソースでアクションを実行するのに必要なアクセス許可が含まれており、ターゲットアカウント設定を追加することにより実験テンプレートに対して作成します。ターゲットアカウントのロールを継承し、 AWS FISとの信頼関係を確立するアクセス許可を持つオーケストレーターアカウントの IAM ロールを作成します。この IAM ロールは実験テンプレートの `roleArn` として使用されます。

ロールの連鎖に関する詳細については、「IAM ユーザーガイド」の「[ロールに関する用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)」を参照してください。

次の例では、オーケストレーターアカウント A に、ターゲットアカウント B で `aws:ebs:pause-volume-io` を使用した実験を実行するアクセス許可を設定します。

1. アカウント B で、アクションの実行に必要なアクセス許可のある IAM ロールを作成します。各アクションに必要なアクセス許可については、「[AWS FIS アクションリファレンス](fis-actions-reference.md)」を参照してください。次の例は、EBS Pause Volume IO アクション [aws:ebs:pause-volume-io](fis-actions-reference.md#pause-volume-io) を実行するためにターゲットアカウントが付与するアクセス許可を示しています。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeVolumes"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:PauseVolumeIO"
               ],
               "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 次に、アカウント A との信頼関係を作成する信頼ポリシーをアカウント B に追加します。ステップ 3 で作成するアカウント A の IAM ロールの名前を選択します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "{{AccountIdA}}"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringLike": {
                       "sts:ExternalId": "arn:aws:fis:{{region}}:{{accountIdA}}:experiment/*"
                   },
                   "ArnEquals": {
                       "aws:PrincipalArn": "arn:aws:iam::{{111122223333}}:role/{{role_name}}"
                   }
               }
           }
       ]
   }
   ```

------

1. アカウント A で IAM ロールを作成します。このロール名は、ステップ 2 の信頼ポリシーで指定したロールと一致している必要があります。複数のアカウントをターゲットにするには、オーケストレーターに各ロールを継承するアクセス許可を付与します。次の例は、アカウント A がアカウント B を継承するアクセス許可を示しています。追加のターゲットアカウントがある場合、このポリシーにロール ARN を追加します。ターゲットアカウントごとに 1 つだけロール ARN を持つことができます。

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

****  

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

------

1. アカウント A のこの IAM ロールは実験テンプレートの `roleArn` として使用されます。次の例は、オーケストレーターアカウントであるアカウント A を引き受ける AWS FIS アクセス許可を付与する IAM ロールに必要な信頼ポリシーを示しています。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "fis.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

Stacksets を使用し、一度に複数の IAM ロールをプロビジョニングすることもできます。CloudFormation StackSets を使用するには、 AWS アカウントで必要な StackSet アクセス許可を設定する必要があります。詳細については、「[AWS CloudFormation StackSets の操作](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)」を参照してください。

## マルチアカウント実験の停止条件 (オプション)
<a name="alarms-and-monitoring"></a>

 停止条件**は、アラームとして定義したしきい値に達した場合に実験を停止する仕組みです。マルチアカウント実験に対して停止条件を設定するには、クロスアカウントアラームを使用することができます。読み取り専用のアクセス許可を使用してオーケストレーターアカウントがアラームを利用できるようにするには、各ターゲットアカウントで共有を有効にする必要があります。共有すると、Metric Math を使用して異なるターゲットアカウントからメトリクスを組み合わせることができます。その後、このアラームを実験の停止条件として追加できます。

クロスアカウントダッシュボードに関する詳細については、「[クロスアカウントクロスリージョン CloudWatch コンソール](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)」を参照してください。

## マルチアカウント実験の安全レバー (オプション）
<a name="safety-levers-for-multi-accounts"></a>

安全レバーは、実行中のすべての実験を停止し、新しい実験の開始を防ぐために使用されます。安全レバーを使用して、特定の期間に FIS 実験を防止したり、アプリケーションのヘルスアラームに対応したりできます。すべての AWS アカウントには、 ごとに安全レバーがあります AWS リージョン。安全レバーをエンゲージすると、安全レバーと同じアカウントとリージョンで実行中のすべての実験に影響が及びます。マルチアカウント実験を停止して防止するには、実験を実行しているのと同じアカウントとリージョンに安全レバーをエンゲージする必要があります。