繁体   English   中英

在 lambda 函数的 IAM 策略条件下使用 aws:ResourceTag 不起作用

[英]Using aws:ResourceTag in conditions on an IAM policy for lambda functions does not work

我需要分配给开发人员的角色才能读取具有特定标签的 lambda 函数。

为此,我在所有资源上分配了以下标签:

标签 价值
团队 开发人员、devops 等...
环境 开发、STG、产品

团队标签可以有多个团队,以空格分隔,因为多个团队可以拥有同一资源。

  1. 示例 1: team: developers
  2. 示例 2: team: developers devops finance

根据显示可以通过标签授予访问权限的 AWS 文档(尽管有部分支持,因为有些操作不允许这样做),我为分配给开发人员的 IAM 角色创建了以下策略,包括标签的条件:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowReadingFunctionsByTags",
            "Effect": "Allow",
            "Action": [
                "lambda:ListTags",
                "lambda:GetFunction"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": { "aws:ResourceTag/team": "*developers*" },
                "StringEquals": { "aws:ResourceTag/environment": [ "dev" , "stg" ] }
            }
        },
        {
            "Sid": "ListAllFunctions",
            "Effect": "Allow",
            "Action": [
                "lambda:ListFunctions",
                "lambda:GetAccountSettings"
            ],
            "Resource": "*"
        }
    ]
}

最后,为了对其进行测试,我承担了在 AWS 控制台上分配策略的角色。

我期待我可以看到 function 没有错误,但是,显示以下错误:

User: arn:aws:sts::[REDACTED]:assumed-role/lambda_role/[REDACTED] is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:eu-central-1:[REDACTED]:function:[LAMBDA NAME] because no identity-based policy allows the lambda:GetFunction action

我还尝试了以下内容:

  • 无条件限制为特定资源:有效。
  • 限制为具有条件的特定资源:不工作。
  • 仅使用团队标签:不起作用。
  • 仅使用环境标签:不工作。
  • 在团队标签上使用 StringEquals,资源只有一个团队:不工作。
  • 添加所有支持“AllowReadingFunctionsByTags”条件的 Lambda 读取和列表操作:不起作用。
  • 使用arn:aws:lambda:*:*:function:*作为资源选择器:不工作。

此外,IAM 策略模拟器根据输入显示以下内容。

拒绝 IAM 策略模拟

接受的 IAM 政策模拟

该政策有什么问题,我该如何进一步调试它?

在我们与 AWS 支持人员交谈后,他们发现有一个关于使用旧帐户禁用的标签过滤的功能,以防止破坏。 此功能块未在新帐户上设置。

要解决此问题,您需要联系 AWS Support。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM