通过IAM策略限制AWS SecretsManager不能按预期工作

时间:2019-06-04 08:12:01

标签: amazon-web-services secretsmanager

我对Secrets Manager的IAM策略管理感到困惑。

设置:

  • 具有为用户定义的IAM角色的AWS帐户
  • 每个用户IAM角色都应具有根据命名架构存储机密的权限

问题:

  • Action: secretsmanager:*不起作用,用户可以创建机密,但无法读取它们。

  • 为了允许getSecretValue,我必须指定第二条策略语句来明确提供访问权限。

  • 在第一个语句中使用条件ForAnyValue:StringLike时,如果我将其添加到第二个语句中以限制用户,则会授予拒绝权限。

以下是我的政策声明,这是使其发挥作用的唯一方法。但是据我所知,只包含第一个语句应该没问题。

我通过python包装器呈现策略。因此,请不要与格式字符串混淆

{
        "Effect": "Allow",
        "Action": [
            "secretsmanager:*"
        ],
        "Resource": [
            f"arn:aws:secretsmanager:{region}:{account_number}:secret:{role_name}-*"
        ],
        "Condition": {
            "ForAnyValue:StringLike": {
                "secretsmanager:Name": f"{role_name}-*"
            }
        }
    }

    allow_user_to_list_secrets_manager = {
        "Effect": "Allow",
        "Action":  [
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecrets",
                "secretsmanager:GetSecretValue"
            ],
        "Resource": [
            f"*"
        ]
    }

更新 我仍然没有完全理解为什么我需要两个策略,但是删除条件元素解决了我的问题。我从aws docs得到它,但似乎使策略声明感到困惑。按资源过滤也可以。

0 个答案:

没有答案