AWS FIS 実験用の IAM ロール - AWS 障害インジェクションサービス

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

AWS FIS 実験用の IAM ロール

AWS Identity and Access Management IAMは、管理者が AWS リソースへのアクセスを安全にコントロールするために役立つ AWS のサービスです。AWS FIS を使用するには、AWS FIS が、ユーザーに代わって実験を実行できるように AWS FIS に必要な権限が認められる IAM ロールを作成する必要があります。この実験ロールは、実験テンプレートの作成時に指定します。単一アカウントの実験の場合、実験ロールの IAM ポリシーは、実験テンプレートでターゲットとして指定したリソースを変更するアクセス権限を付与する必要があります。マルチアカウントの実験の場合、実験ロールはオーケストレーターロールのアクセス許可を付与し、各ターゲットアカウントの IAM ロールを継承する必要があります。詳細については、「マルチアカウント実験のアクセス許可」を参照してください。

最小権限を付与する標準のセキュリティプラクティスに従うことをお勧めします。これを行うには、ポリシーで特定のリソース ARN またはタグを指定します。

AWS FIS をすぐに使い始めることができるように、AWS 実験ロールを作成するときに指定できるマネージドポリシーを用意しています。また、これらのポリシーをモデルとして使用して、独自のインラインポリシードキュメントを作成することもできます。

前提条件

開始する前に、AWS CLI をインストールして必要な信頼ポリシーを作成します。

AWS CLI のインストール

開始する前に、AWS CLI をインストールして設定します。AWS CLI を設定するときには、AWS 認証情報の入力を求められます。この手順の例では、デフォルトのリージョンも設定済みであることを前提としています。設定していない場合は、--region オプションを各コマンドに追加します。詳細については、「AWS CLI のインストールまたは更新」および「AWS CLI の設定」を参照してください。

信頼関係ポリシーを作成する

実験ロールには AWS FIS サービスがこのロールを引き受けることができる信頼関係が必要です。fis-role-trust-policy.json という名前のテキストファイルを作成して以下の信頼関係ポリシーを追加します。

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

「混乱した代理」問題に対して自分を守るために aws:SourceAccount および aws:SourceArn 条件キーを使用することをお勧めします。ソースアカウントは実験の所有者であり、ソース ARN は実験の ARN です。例えば、次の条件ブロックを信頼ポリシーに追加する必要があります。

"Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:fis:region:account_id:experiment/*" } }
アクセス許可を追加し、ターゲットアカウントロールを継承します (マルチアカウント実験のみ)。

マルチアカウント実験の場合、オーケストレーターアカウントがターゲットアカウントロールを継承することを許可するアクセス許可が必要です。次の例を変更してインラインポリシードキュメントとして追加し、ターゲットアカウントロールを継承することができます。

{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":[ "arn:aws:iam::target_account_id:role/role_name" ] }

オプション 1: 実験ロールを作成して AWS のマネージドポリシーをアタッチする

AWS FIS から AWS のマネージドポリシーのいずれかを利用すれば、すぐに使い始めることができます。

実験ロールを作成して AWS マネージドポリシーをアタッチするには
  1. 実験の AWS FIS アクション用のマネージドポリシーがあることを確認します。それ以外の場合は、代わりに独自のインラインポリシードキュメントを作成する必要があります。詳細については、「AWSAWS Fault Injection Service の 管理ポリシー」を参照してください。

  2. 次の create-role コマンドを使用してロールを作成し、前提条件で作成した信頼ポリシーを追加します。

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  3. 管理AWSポリシーをアタッチするには、次のattach-role-policyコマンドを使用します。

    aws iam attach-role-policy --role-name my-fis-role --policy-arn fis-policy-arn

    fis-policy-arn は次のいずれかです。

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorECSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorRDSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess

オプション 2: 実験ロールを作成してインラインポリシードキュメントを追加する

マネージドポリシーがないアクションや、特定の実験に必要な権限のみを含める場合は、このオプションを使用してください。

実験を作成してインラインポリシードキュメントを追加するには
  1. 次の create-role コマンドを使用してロールを作成し、前提条件で作成した信頼ポリシーを追加します。

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  2. fis-role-permissions-policy.json という名前のテキストファイルを作成して権限ポリシーを追加します。手順の手始めに使用できる例については、以下の内容を参照してください。

    • フォールトインジェクションアクション - 以下のポリシーから開始します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFISExperimentRoleFaultInjectionActions", "Effect": "Allow", "Action": [ "fis:InjectApiInternalError", "fis:InjectApiThrottleError", "fis:InjectApiUnavailableError" ], "Resource": "arn:*:fis:*:*:experiment/*" } ] }
    • Amazon EBS アクション - 以下のポリシーから開始します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:PauseVolumeIO" ], "Resource": "arn:aws:ec2:*:*:volume/*" } ] }
    • Amazon EC2 アクションAWSFaultInjectionSimulatorEC2Accessポリシーから開始します。

    • Amazon ECS アクションAWSFaultInjectionSimulatorECSAccessポリシーから開始します。

    • Amazon EKS アクションAWSFaultInjectionSimulatorEKSAccessポリシーから開始します。

    • ネットワークアクションAWSFaultInjectionSimulatorNetworkAccessポリシーから開始します。

    • Amazon RDS アクションAWSFaultInjectionSimulatorRDSAccessポリシーから開始します。

    • Systems Manager アクションAWSFaultInjectionSimulatorSSMAccessポリシーから開始します。

  3. 次のput-role-policyコマンドを使用して、前のステップで作成したアクセス許可ポリシーを追加します。

    aws iam put-role-policy --role-name my-fis-role --policy-name my-fis-policy --policy-document file://fis-role-permissions-policy.json