0

我被困在配置我的 AWS Lambda 以访问密钥。我已经做了很多次,所有现有资源都可以正常工作,但现在一个新的不想这样做。

Stack:我在 secretsmanager 中有一个秘密和一个 lambda(在 vpc 中)

我想要什么:阅读 lambda 的秘密。

lambda 的角色具有以下策略:

    "Statement": [
        {
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:xxxxxxxxxxxx",
            "Effect": "Allow"
        }
    ]
}

但是,即使我为这个角色授予了完全的管理员权限,我也不能从 lambda 中读取秘密。我收到以下错误消息:

User: arn:aws:sts::xxxxxxxxx:assumed-role/xxxxxxx/yyyyyyyy is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:xxxxxxxxxxxx

我还有其他可以工作的 lambda,但重新部署我的 cloudformation 堆栈可能会因此而破坏整个应用程序,这有点可怕。

我假设 AWS 方面发生了一些变化,现有资源已更改为兼容,但现在我无法访问任何新的或现有的秘密,即使我可以在 lambda 配置中看到我有权限。

有谁知道缺少什么?谢谢!

4

1 回答 1

1

原来我错过了一个地方可以检查。当我深入挖掘时,我发现这整个事情只有在 Lambda 绑定到 VPC 时才会发生,但是删除 VPC 配置使其工作。

对我来说,缺少的部分是 secretsmanager 的端点策略(允许我从 VPC 访问 secretsmanager)

于 2021-04-07T16:58:27.357 回答