如何排查我的账户根用户或具有管理员权限的 IAM 实体的“访问被拒绝”问题?

1 分钟阅读
0

我想排查我的 AWS 账户根用户或具有管理员权限的 AWS Identity and Access Management (IAM) 实体收到的“访问被拒绝”错误。

简短描述

由于以下原因,您的根用户或具有管理员权限的 IAM 实体可能会收到访问被拒绝错误:

  • 服务控制策略 (SCP) 对某项服务施加了限制。
  • 基于资源的策略限制了对某个资源的访问。
  • 权限边界限制了您的根用户或 IAM 实体可以执行的操作。
  • 会话策略导致出现授权问题。
  • Amazon Virtual Private Cloud (Amazon VPC) 端点策略限制了访问。

解决方法

解决根用户的授权问题

SCP 可以包括某些值,从而限制根用户使用 AWS Organizations 成员账户。从附加到组织管理账户的 SCP 中移除限制。

以下示例显示了一个 SCP,该 SCP 拒绝根用户访问 Amazon Simple Storage Service (Amazon S3)。该 SCP 包括 aws:PrincipalArn 条件键和 arn:aws:iam::accountID:root 格式的根 ARN,用于拒绝访问:

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::*:root"
          ]
        }
      }
    }
  ]
}

解决 IAM 实体的授权问题

另一个策略类型可能会对具有管理员级别访问权限的 IAM 实体施加限制。有关更多信息,请参阅排查“访问被拒绝”错误消息

基于资源的策略(例如 Amazon S3 存储桶策略)会限制 IAM 实体对资源的访问权限。确保附加到资源的基于资源的策略指定了 IAM 实体。有关对基于资源的策略提供支持的服务列表,请参阅与 IAM 配合使用的 AWS 服务

如果您使用权限边界,则该实体只能执行基于身份的策略和权限边界中都允许的操作。更新权限边界,使其允许执行与基于身份的策略相同的操作。

在为联合用户的 IAM 角色创建临时会话时,可以通过编程方式传递会话策略。要检查您是否为 IAM 角色会话传递了会话策略,请查看 AWS CloudTrail 日志中是否有 AssumeRoleAssumeRoleWithSAMLAssumeRoleWithWebIdentity API 调用。要检查您为联合用户会话传递的会话策略,请查看 CloudTrail 日志中是否有 GetFederationToken API 调用。

如果您通过 VPC 端点路由请求,请检查关联 VPC 端点策略并移除限制。

解决 Amazon S3 资源的“访问被拒绝”错误消息

要排查 Amazon S3 资源的访问被拒绝错误消息,请参阅如何排查来自 Amazon S3 的“403 访问被拒绝”错误?

解决在访问账单与成本管理控制台时的授权问题

您必须授予根用户或 IAM 实体访问 AWS 账单与成本管理控制台的权限。有关更多信息,请参阅如何解决账单与成本管理控制台的 IAM 权限问题?

要解决授权问题,请检查您的 IAM 实体是否以根用户身份激活。

相关信息

权限和策略如何提供访问管理

AWS 官方
AWS 官方已更新 3 个月前