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

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

この例では、次のような IAM ポリシーを作成する方法を示します。 は IAM でいくつかのサービスへのフルアクセスと制限された自己管理アクセスを許可します。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" } ] }