IAM:允许或拒绝以编程方式和在控制台中访问多个服务 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

IAM:允许或拒绝以编程方式和在控制台中访问多个服务

此示例说明了如何创建基于身份的策略,以允许完全访问多个服务并在 IAM 中进行有限的自我管理访问。该策略还会拒绝对 Amazon S3 logs 存储桶或 Amazon EC2 i-1234567890abcdef0 实例的访问。此策略定义了程序访问和控制台访问的权限。要使用此策略,请将示例策略中的斜体占位符文本替换为您自己的信息。然后,按照创建策略编辑策略中的说明操作。

警告

该策略允许完全访问多个服务中的每个操作和资源。只应将该策略应用于受信任的管理员。

您可以将该策略作为权限边界,以定义基于身份的策略可以为 IAM 用户授予的最大权限。有关更多信息,请参阅使用权限边界将责任委派给其他人。在将策略作为用户的权限边界时,这些语句定义以下边界:

  • AllowServices 语句允许完全访问指定的 Amazon 服务。这意味着,用户在这些服务中的操作仅受附加到用户的权限策略的限制。

  • AllowIAMConsoleForCredentials 语句允许访问以列出所有 IAM 用户。要在 Amazon Web Services Management Console中导航用户页面,此访问权限是必需的。它还允许查看账户的密码要求,这是用户更改自己的密码所必需的。

  • AllowManageOwnPasswordAndAccessKeys 语句允许用户仅管理其自己的控制台密码和编程访问密钥。这是非常重要的,因为如果另一个策略为用户授予完全 IAM 访问权限,该用户可能会更改自己或其他用户的权限。此语句可防止这种情况的发生。

  • DenyS3Logs 语句显式拒绝对 logs 存储桶的访问。该策略对用户实施公司限制。

  • DenyEC2Production 语句显式拒绝对 i-1234567890abcdef0 实例的访问。

该策略不允许访问其他服务或操作。在将策略作为用户的权限边界时,即使附加到用户的其他策略允许这些操作,Amazon 也会拒绝请求。

{ "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" } ] }