我为 AWS 资源添加了标签,但是我的 IAM 策略不起作用。哪些 AWS 服务支持基于授权的标签?

1 分钟阅读
0

我的资源标记了正确的标签键和值,但是我的 AWS Identity and Access Management (IAM) 策略不会评估资源上的标签。

简短描述

IAM 策略可以使用全局条件键 aws:ResourceTag/tag-key 根据资源的标签键和值来控制访问权限。并非所有 AWS 服务都支持标签授权。可以标记某些 AWS 资源,例如 AWS Lambda 函数和 Amazon Simple Queue Service (Amazon SQS) 队列。但是,不能在 IAM 策略中用这些标签控制对资源的访问。有关支持基于标签的授权的 AWS 服务列表,请参阅使用 IAM 的 AWS 服务

解决方法

如果 AWS 服务不支持基于标签的授权,请检查该服务的操作、资源和条件键,查看 IAM 策略支持的资源级权限和条件键。一些 AWS 服务,例如 Amazon SQS 访问权限管理概述AWS Lambda 基于身份的 IAM 策略,都有包含示例 IAM 策略的文档。

使用资源级权限可以将某些 Lambda 操作(例如 DeleteFunction 和 PublishVersion)限制为某个特定的 Lambda 函数。将此示例 IAM 策略附加到 IAM 用户后,便可允许这些 Lambda 操作,但只能对单个 Lambda 函数执行这些操作。

**注意:**编辑 IAM 策略以加入您自己的 Lambda 函数 ARN

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowActionsOnSpecificFunction",
      "Effect": "Allow",
      "Action": [
        "lambda:DeleteFunction",
        "lambda:PublishVersion"
      ],
      "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
    }
  ]
}

相关信息

如何使用基于 IAM 身份的策略来限制对特定 IAM 角色会话的访问?

如何使用 PrincipalTag、ResourceTag、RequestTag 和 TagKeys 条件键来创建基于标签的限制的 IAM 策略?

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