我想排查我的 AWS 账户根用户或具有管理员权限的 AWS Identity and Access Management (IAM) 实体收到的 "Access denied" 错误。
简短描述
由于以下原因,您的根用户或具有管理员权限的 IAM 实体可能会收到访问遭拒错误:
- 服务控制策略 (SCP) 对某项服务施加了限制。
- 基于资源的策略限制了对某个资源的访问。
- 权限边界限制了您的根用户或 IAM 实体可以执行的操作。
- 会话策略导致出现授权问题。
- Amazon Virtual Private Cloud (Amazon VPC) 端点策略限制了访问。
解决方法
解决根用户的授权问题
SCP 可以包含限制根用户对成员账户执行操作的条件。要解决此问题,请从附加到组织成员账户的 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 实体施加限制。有关更多信息,请参阅对 access denied 错误消息进行故障排除。
基于资源的策略(例如 Amazon S3 存储桶策略)会限制 IAM 实体对资源的访问权限。确保附加到资源的基于资源的策略指定了 IAM 实体。有关对基于资源的策略提供支持的服务列表,请参阅与 IAM 配合使用的 AWS 服务。
如果您使用权限边界,则该实体只能执行基于身份的策略和权限边界中都允许的操作。更新权限边界,使其允许执行与基于身份的策略相同的操作。
在为联合用户的 IAM 角色创建临时会话时,可以通过编程方式传递会话策略。要检查您是否为 IAM 角色会话传递了会话策略,请查看 AWS CloudTrail 日志中是否有 AssumeRole、AssumeRoleWithSAML 和 AssumeRoleWithWebIdentity API 调用。要检查您为联合用户会话传递的会话策略,请查看 CloudTrail 日志中是否有 GetFederationToken API 调用。
如果您通过 VPC 端点路由请求,请检查关联 VPC 端点策略并移除限制。
解决 Amazon S3 资源的 "Access denied" 错误消息
要对 Amazon S3 资源的 Access denied 错误消息进行故障排除,请参阅如何对来自 Amazon S3 的 403 访问遭拒错误进行故障排除?
解决在访问账单与成本管理控制台时的授权问题
您必须授予根用户或 IAM 实体访问 AWS 账单与成本管理控制台的权限。有关更多信息,请参阅如何对账单与成本管理控制台的 IAM 权限问题进行故障排除?
要解决授权问题,请检查您的 IAM 实体是否以根用户身份激活。
相关信息
权限和策略如何提供访问管理
AWSSupport-TroubleshootIAMAccessDeniedEvents