マルチアカウント実験の前提条件 - AWS Fault Injection Service

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

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

マルチアカウント実験に停止条件を使用するには、まずクロスアカウントアラームを設定する必要があります。 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の として使用されます。次の例は、オーケストレーターアカウントであるアカウント 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。

マルチアカウント実験の安全レバー (オプション)

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