IAM: 複数のサービスへのアクセスをプログラムによりコンソールで許可および拒否する - AWS Identity and Access Management

IAM: 複数のサービスへのアクセスをプログラムによりコンソールで許可および拒否する

この例では、IAM で複数のサービスへのフルアクセスと IAM の制限された自己管理アクセスを許可する ID ベースのポリシーを作成する方法を示します。また、Amazon S3 の logs バケットまたは Amazon EC2 の i-1234567890abcdef0 インスタンスへのアクセスを拒否します。このポリシーは、プログラムおよびコンソールアクセスのアクセス許可を定義します。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキストを独自の情報に置き換えます。次に、ポリシーの作成またはポリシーの編集の手順に従います。

警告

このポリシーは、複数のサービスのすべてのアクションとリソースへのフルアクセスを許可します。このポリシーは、信頼されている管理者にのみ適用する必要があります。

このポリシーをアクセス許可の境界として使用して、アイデンティティベースのポリシーが IAM ユーザーに付与できる最大のアクセス許可の上限を定義できます。詳細については、「アクセス許可の境界を使用した他のユーザーへの責任の委任」を参照してください。ポリシーがユーザーのアクセス許可の境界として使用される場合、ステートメントは次の境界を定義します。

  • この AllowServices ステートメントでは、指定された AWS のサービスへのフルアクセスを許可します。つまり、これらのサービスにおけるユーザーのアクションは、ユーザーにアタッチされているアクセス許可ポリシーによってのみ制限されます。

  • AllowIAMConsoleForCredentials ステートメントは、すべての IAM ユーザーを一覧表示するためのアクセス権を付与します。このアクセス権は、AWS Management Console で [ユーザー] ページに移動するために必要です。また、このアクセス権では、アカウントのパスワード要件を表示することができます。これは、ユーザーが自分のパスワードを変更する場合に必要です。

  • AllowManageOwnPasswordAndAccessKeys ステートメントは、自分のパスワードおよびプログラムを使用したアクセスキーの管理のみ許可します。これが重要であるのは、別のポリシーが IAM へのフルアクセスをユーザーに与えた場合、このユーザーは自分や他のユーザーのアクセス許可を変更できるようになるためです。このステートメントで、これを防止します。

  • DenyS3Logs ステートメントでは、logs バケットへのアクセスを明示的に拒否します。このポリシーはユーザーに会社の制限を適用します。

  • DenyEC2Production ステートメントでは、i-1234567890abcdef0 インスタンスへのアクセスを明示的に拒否します。

このポリシーでは、他のサービスまたはアクションへのアクセスは許可されません。ポリシーがユーザーのアクセス許可の境界として使用されている場合、そのユーザーに関連付けられている他のポリシーがそれらのアクションを許可していても、AWS によってリクエストが拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowServices", "Effect": "Allow", "Action": [ "s3:*", "cloudwatch:*", "ec2:*" ], "Resource": "*" }, { "Sid": "AllowIAMConsoleForCredentials", "Effect": "Allow", "Action": [ "iam:ListUsers", "iam:GetAccountPasswordPolicy" ], "Resource": "*" }, { "Sid": "AllowManageOwnPasswordAndAccessKeys", "Effect": "Allow", "Action": [ "iam:*AccessKey*", "iam:ChangePassword", "iam:GetUser", "iam:*LoginProfile*" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::logs", "arn:aws:s3:::logs/*" ] }, { "Sid": "DenyEC2Production", "Effect": "Deny", "Action": "ec2:*", "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0" } ] }