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

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

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

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

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

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

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

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

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

  1. アカウント B で、 アクションを実行するために必要なアクセス許可を持つ IAMロールを作成します。各アクションに必要なアクセス許可については、「AWS FIS アクションリファレンス」を参照してください。次の例は、ターゲットアカウントがボリュームEBSの一時停止 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 を引き受けるためのアクセス許可を示しています。追加のターゲットアカウントがある場合は、このポリシーARNsにロールを追加します。ターゲットアカウントARNごとに 1 つのロールのみを持つことができます。

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

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

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

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

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

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

マルチアカウント実験の安全手段 (オプション)

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