マルチアカウント実験の前提条件 - AWS フォールトインジェクションサービス

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

マルチアカウント実験の前提条件

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

マルチアカウント実験のアクセス許可

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

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

ロールの連鎖に関する詳細については、「IAM ユーザーガイド」の「ロールに関する用語と概念」を参照してください。

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:PauseVolumeIO" ], "Resource": "arn:aws:ec2:region:accountIdB:volume/*" }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" } ] }
  2. 次に、アカウント A との信頼関係を作成する信頼ポリシーをアカウント B に追加します。ステップ 3 で作成するアカウント A の IAM ロールの名前を選択します。

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::accountIdB:role/role_name" ] } ] }
  4. アカウント A のこの IAM ロールは実験テンプレートの roleArn として使用されます。次の例は、アカウント A、オーケストレーターアカウントを引き受ける AWS FIS アクセス許可を付与する IAM ロールで必要な信頼ポリシーを示しています。

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

Stacksets を使用し、一度に複数の IAM ロールをプロビジョニングすることもできます。を使用するには CloudFormation StackSets、 AWS アカウントに必要な StackSet アクセス許可を設定する必要があります。詳細については、「AWS の使用 CloudFormation StackSets」を参照してください。

マルチアカウント実験の停止条件 (オプション)

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

クロスアカウントダッシュボードの詳細については、「 でのクロスアカウント機能の有効化」を参照してください CloudWatch。