授予对具有给定标签的AWS Lambda资源的访问权限

时间:2019-04-01 20:24:46

标签: amazon-web-services aws-lambda tags amazon-iam

我想授予一组用户访问权限以对某些Lambda函数执行某些操作。我的Lambda已被正确标记以允许这样做,例如:“ department:hr”。我可以将其与IAM绑在一起吗?

我看过关于条件的文档,这些条件允许将ResourceTag\*与一个值进行比较,但是这些似乎在Lambda函数的可视化编辑器(不幸的是,我依赖于它)中不可用。

我想要这样的东西:

            "Effect": "Allow",
            "Action": [
                "lambda:ListFunctions",
                "lambda:ListVersionsByFunction",
                "lambda:GetLayerVersion",
                "lambda:GetEventSourceMapping",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:GetAccountSettings",
                "lambda:GetFunctionConfiguration",
                "lambda:GetLayerVersionPolicy",
                "lambda:ListTags",
                "lambda:ListEventSourceMappings",
                "lambda:ListLayerVersions",
                "lambda:ListLayers",
                "lambda:GetAlias",
                "lambda:GetPolicy"
            ],
            "Resource": "*"
            "Condition": {
                "StringEquals": {
                    "lambda:ResourceTag/department": "hr"
                }

我无法在可视化编辑器中构建它,而自己尝试时会出现语法错误。

2 个答案:

答案 0 :(得分:0)

我不认为lambda:ResourceTag/${TagKey}是可用于任何lambda动作的上下文条件(参考:https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html)。

话虽如此,对上下文键的错误使用通常会静默失败。您能提供完整的陈述吗?例如,在上面的代码段中,缺少该条件的}

答案 1 :(得分:0)

用以下内容代替您的病情应该可以。

           "Condition": {
                "StringEquals": {
                    "aws:PrincipalTag/department": "hr"
                }
           }

参考:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html