跳至内容

如何对 IAM 基于标签的访问控制的“AccessDenied”错误进行故障排除?

2 分钟阅读
0

当我通过使用基于标签的访问控制的 AWS Identity and Access Management (IAM) 策略执行 AWS API 操作时,会收到“AccessDenied”错误。

解决方法

采取以下操作对您 IAM 策略的“AccessDenied”错误进行故障排除。

验证标签匹配要求

aws:ResourceTag、aws:RequestTag 和 aws:TagKeys 等 IAM 条件键需区分大小写。aws:RequestTag 和 aws:ResourceTag 条件键会检查标签值是否区分大小写。aws:TagKeys 条件键会检查标签键是否区分大小写。

确保在 IAM 策略条件中输入正确的值,以匹配资源标签的确切大小写。

重要信息: 确保将 aws:ResourceTag 用于对现有资源的操作,将 aws:RequestTag 用于资源创建操作。错误的条件键也会导致“AccessDenied”错误。

有关基于标签的访问控制要求的更多信息,请参阅使用标签控制对 AWS 资源的访问。

确认 AWS 服务支持基于标签的条件

确保使用的 AWS 服务支持所有 API 操作的基于标签的条件键。要验证服务的支持,请完成以下步骤:

  1. 前往使用 IAM 的 AWS 服务。
  2. 查看您服务的表,然后检查 ABAC 列中是否显示 Yes(是)。
  3. 选择服务名称以打开服务授权参考。
  4. 在 Actions(操作)表中,找到您的 API 操作并检查 Condition keys(条件键)列。
  5. 在 Resource types(资源类型)表中,验证哪些条件键支持您的资源类型。

有关基于标签的访问控制的更多信息,请参阅使用标签控制对 AWS 资源的访问。

检查是否有明确的 Deny 语句

IAM 策略中的明确 Deny 语句会覆盖 Allow 语句。查看以下策略类型,查找可能阻止访问的明确 Deny 语句:

  • 基于身份的策略
  • 服务控制策略 (SCP)
  • 权限边界
  • 基于资源的策略

有关策略评估逻辑的更多信息,请参阅策略评估逻辑。

查看 CloudTrail 日志以获取详细的错误信息

您可以查看 AWS CloudTrail 日志,查看哪个策略出现“AccessDenied”错误和问题。要查看 CloudTrail 日志,请完成以下步骤:

  1. 打开 CloudTrail 控制台。
  2. 在导航窗格中,选择 Event history(事件历史记录)。
  3. 对于 Lookup attributes(查找属性)中,选择 Event name(事件名称)。
  4. 在搜索字段中,输入失败的 API 操作。
  5. 查看事件并检查以下内容:
    对于 Error code(错误代码),查找 AccessDenied。
    对于 Error message(错误消息),查看问题。
    对于 User identity(用户身份),确定哪个主体尝试了该操作。
    对于 Resources(资源),验证资源的 Amazon 资源名称 (ARN) 和标签。
    对于 Request parameters(请求参数),请查看在请求上下文中传递的标签。

有关 CloudTrail 事件的更多信息,请参阅使用 AWS CloudTrail 记录 IAM 和 AWS STS API 调用。

使用 IAM 策略模拟器测试策略

IAM 策略模拟器可帮助您在将基于标签的策略部署到生产环境之前对其进行测试和故障排除。要使用 IAM 策略模拟器,请完成以下步骤:

  1. 打开 IAM 策略模拟器。
  2. 选择您要测试的 IAM 用户、组或角色。
  3. 选择 Select service(选择服务),然后选择 AWS 服务。
  4. 选择 Select actions(选择操作),然后选择要测试的操作。
  5. 展开所选操作的 Simulation Settings(模拟设置)。
  6. 对于 Resource ARN(资源 ARN),输入要模拟的资源的 ARN。
  7. 在 Context Keys(上下文键)下,添加相关的标签条件键。例如,输入 aws:ResourceTag/Environment。然后,设置该值。例如,您可以将该值设置为 Production(生产)。
  8. 选择 Run Simulation(运行模拟)。
  9. 查看结果以确定允许或拒绝访问的策略语句。

有关测试 IAM 策略的更多信息,请参阅使用 IAM 策略模拟器测试 IAM 策略。

AWS 官方已更新 6 个月前