AWS Fault Injection Service ポリシーの例 - AWS フォールトインジェクションサービス

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

AWS Fault Injection Service ポリシーの例

デフォルトでは、ユーザーとロールには作成または変更するアクセス許可がありません AWS FIS リソース。また、 を使用してタスクを実行することはできません。 AWS Management Console, AWS Command Line Interface (AWS CLI)、または AWS API。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するために、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

これらのポリシードキュメント例を使用してIAMアイデンティティベースのJSONポリシーを作成する方法については、「 ユーザーガイド」のIAM「ポリシーの作成IAM」を参照してください。

で定義されるアクションとリソースタイプの詳細については、「」を参照してください。 AWS FIS各リソースタイプの の形式を含む については、ARNs「 のアクション、リソース、および条件キー」を参照してください。 AWS 「サービス認証リファレンス」の「Fault Injection Service」。

ポリシーのベストプラクティス

ID ベースのポリシーは、誰かが作成、アクセス、または削除できるどうかを決定します。 AWS FIS アカウントの リソース。これらのアクションでは、 のコストが発生する可能性があります。 AWS アカウント。 アイデンティティベースのポリシーを作成または編集するときは、以下のガイドラインと推奨事項に従ってください。

  • の使用を開始する AWS 管理ポリシーと最小特権のアクセス許可への移行 – ユーザーとワークロードへのアクセス許可の付与を開始するには、 を使用します。 AWS 多くの一般的なユースケースにアクセス許可を付与する マネージドポリシー。これらは で利用できます。 AWS アカウント。 を定義してアクセス許可をさらに減らすことをお勧めします。 AWS ユースケースに固有の カスタマー管理ポリシー。詳細については、「」を参照してくださいAWS マネージドポリシーまたは AWS ユーザーガイドの ジョブ機能の IAM マネージドポリシー。

  • 最小特権のアクセス許可を適用する – IAMポリシーでアクセス許可を設定する場合は、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、「 ユーザーガイド」の「 のポリシーとアクセス許可IAMIAM」を参照してください。

  • IAM ポリシーの条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションとリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを を使用して送信する必要があることを指定できますSSL。特定の を通じてサービスアクションが使用されている場合、条件を使用してサービスアクションへのアクセスを許可することもできます。 AWS のサービスまたは AWS CloudFormation。 詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件IAM」を参照してください。

  • IAM Access Analyzer を使用してIAMポリシーを検証し、安全で機能的なアクセス許可を確保する – IAM Access Analyzer は、ポリシーがポリシー言語 (JSON) とIAMベストプラクティスに準拠するように、新規および既存のIAMポリシーを検証します。IAM Access Analyzer には、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項が用意されています。詳細については、「 ユーザーガイド」のIAM「Access Analyzer ポリシーの検証IAM」を参照してください。

  • 多要素認証を要求する (MFA) — でIAMユーザーまたはルートユーザーを必要とするシナリオがある場合 AWS アカウントのセキュリティを強化するMFAには、 をオンにします。API オペレーションが呼び出されるMFAタイミングを要求するには、ポリシーにMFA条件を追加します。詳細については、「 IAMユーザーガイド」のMFA「 で保護されたAPIアクセスの設定」を参照してください。

のベストプラクティスの詳細についてはIAM、「 ユーザーガイド」の「 のセキュリティのベストプラクティスIAMIAM」を参照してください。

例: を使用する AWS FIS コンソール

にアクセスするには AWS Fault Injection Service コンソールでは、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、 の詳細を一覧表示および表示できます。 AWS FIS の リソース AWS アカウント。 最小限必要なアクセス許可よりも制限されたアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。 AWS CLI または AWS API。代わりに、実行しようとしているAPIオペレーションに一致するアクションのみへのアクセスを許可します。

次のポリシー例では、すべての を一覧表示および表示するアクセス許可を付与します。 AWS FIS を使用した リソース AWS FIS コンソール。ただし、作成、更新、削除はできません。また、すべての で使用されている利用可能なリソースを表示するアクセス許可も付与します。 AWS FIS 実験テンプレートで指定できる アクション。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FISReadOnlyActions", "Effect": "Allow", "Action": [ "fis:List*", "fis:Get*" ], "Resource": "*" }, { "Sid": "AdditionalReadOnlyActions", "Effect": "Allow", "Action": [ "ssm:Describe*", "ssm:Get*", "ssm:List*", "ec2:DescribeInstances", "rds:DescribeDBClusters", "ecs:DescribeClusters", "ecs:ListContainerInstances", "eks:DescribeNodegroup", "cloudwatch:DescribeAlarms", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "PermissionsToCreateServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "fis.amazonaws.com" } } } ] }

例: 利用可能なリスト AWS FIS アクション

次のポリシーは、使用可能な を一覧表示するアクセス許可を付与します。 AWS FIS アクション。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "fis:ListActions" ], "Resource": "arn:aws:fis:*:*:action/*" } ] }

例 : 特定のアクションの実験テンプレートを作成する

次のポリシーでは、アクション aws:ec2:stop-instances の実験テンプレートを作成する権限を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyExample", "Effect": "Allow", "Action": [ "fis:CreateExperimentTemplate" ], "Resource": [ "arn:aws:fis:*:*:action/aws:ec2:stop-instances", "arn:aws:fis:*:*:experiment-template/*" ] }, { "Sid": "PolicyPassRoleExample", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id:role/role-name" ] } ] }

例 : 実験を開始する

次のポリシーは、指定されたIAMロールと実験テンプレートを使用して実験を開始するアクセス許可を付与します。また、 AWS FIS ユーザーに代わってサービスにリンクされたロールを作成する場合。詳細については、「のサービスにリンクされたロールを使用する AWS フォールトインジェクションサービス」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyExample", "Effect": "Allow", "Action": [ "fis:StartExperiment" ], "Resource": [ "arn:aws:fis:*:*:experiment-template/experiment-template-id", "arn:aws:fis:*:*:experiment/*" ] }, { "Sid": "PolicyExampleforServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "fis.amazonaws.com" } } } ] }

例 : タグを使用してリソースの使用量を制御する

次のポリシーは、Purpose=Test タグを持つ実験テンプレートから実験を実行するアクセス権限を付与します。実験テンプレートを作成または変更するアクセス権限は付与されず、指定したタグを持たないテンプレートを使用して実験を実行することはできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "fis:StartExperiment", "Resource": "arn:aws:fis:*:*:experiment-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

例 : 特定のタグを持つ実験テンプレートを削除する

次のポリシーでは、Purpose=Test タグ付きの実験テンプレートを削除する権限を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "fis:DeleteExperimentTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

例: ユーザーにそれぞれのアクセス権限の表示を許可する

この例では、IAMユーザーがユーザー ID にアタッチされているインラインポリシーと管理ポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、コンソールで、または を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。 AWS CLI または AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

例: ec2:InjectApiError の条件キーを使用します。

次の例のポリシーでは、ec2:FisTargetArns 条件キーを使用してターゲットリソースの範囲を制限します。このポリシーでは、 AWS FIS アクション aws:ec2:api-insufficient-instance-capacity-errorおよび aws:ec2:asg-insufficient-instance-capacity-error

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:InjectApiError", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "ec2:FisActionId": [ "aws:ec2:api-insufficient-instance-capacity-error", ], "ec2:FisTargetArns": [ "arn:aws:iam:*:*:role:role-name" ] } } }, { "Effect": "Allow", "Action": "ec2:InjectApiError", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "ec2:FisActionId": [ "aws:ec2:asg-insufficient-instance-capacity-error" ], "ec2:FisTargetArns": [ "arn:aws:autoscaling:*:*:autoScalingGroup:uuid:autoScalingGroupName/asg-name" ] } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeAutoScalingGroups", "Resource": "*" } ] }

例: aws:s3:bucket-pause-replication の条件キーを使用します。

次のポリシー例では、 S3:IsReplicationPauseRequest条件キーを使用して を許可PutReplicationConfigurationし、 が を使用するGetReplicationConfiguration場合にのみ許可します。 AWS FIS のコンテキストにおける AWS FIS アクション aws:s3:bucket-pause-replication

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "S3:PauseReplication" ], "Resource": "arn:aws:s3:::mybucket", "Condition": { "StringEquals": { "s3:DestinationRegion": "region" } } }, { "Effect": "Allow", "Action": [ "S3:PutReplicationConfiguration", "S3:GetReplicationConfiguration" ], "Resource": "arn:aws:s3:::mybucket", "Condition": { "BoolIfExists": { "s3:IsReplicationPauseRequest": "true" } } }, { "Effect": "Allow", "Action": [ "S3:ListBucket" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" } ] }