我們目前有 AWS lambda 函數(shù)使用 AWS 密鑰上的以下資源權(quán)限從 AWS 密鑰管理器檢索密鑰 (lambda 函數(shù)和密鑰屬于同一 AWS 賬戶):{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111111111111:role/MyLambda-FunctionNameRole-1TG1EVGPEQ8TZ" }, "Action" : "secretsmanager:GetSecretValue", "Resource" : "*", "Condition" : { "ForAnyValue:StringEquals" : { "secretsmanager:VersionStage" : "AWSCURRENT" } } } ]}由于更頻繁地進(jìn)行秘密查找,我想使用 AWS Go 秘密管理器緩存添加秘密緩存,但收到以下錯誤消息:AccessDeniedException: 用戶: arn:aws:sts::111111111111:assume-role/MyLambda-FunctionName-DNV2M7OYIFMX/MyLambda-FunctionName-eoFcAmXLBOV1 無權(quán)執(zhí)行: secrets管理器:描述資源上的機(jī)密: secrets_key_name秘密的前綴是:arn:aws:secretsmanr:us-east-1創(chuàng)建緩存管理器的代碼:session := session.Must(session.NewSession(aws.NewConfig().WithRegion("us-east-1")))secretCache, _ := secretcache.New( func(c *secretcache.Cache) { c.Client = secretsmanager.New(session) }, )和代碼來檢索密鑰:secretCache.GetSecretString(secrets_key_name)我嘗試將機(jī)密管理器:描述秘密添加到機(jī)密資源權(quán)限中的操作,以及更改為機(jī)密管理器:*,但我仍然收到錯誤消息。我懷疑這與arn:aws:111111111111:假定角色但我不確定為什么請求一個假定的角色(有問題的lambda函數(shù)和密鑰都屬于同一個aws賬戶)或如何修復(fù)它。任何幫助都非常感謝!編輯:通過不設(shè)置密鑰版本階段,我能夠使用 SecretsManager API(沒有緩存客戶端)直接生成類似的錯誤消息,盡管文檔指出未指定的行為應(yīng)像使用“AWSCURRENT”一樣,這是需要的。認(rèn)為它可能類似,我將緩存客戶端代碼切換到以下內(nèi)容,但仍然收到相同的錯誤:secretCache.GetSecretStringWithStage(secrets_key_name, "AWSCURRENT")
1 回答

眼眸繁星
TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊
事實證明,這顯然與本期中提到的類似 - 從機(jī)密資源策略中刪除條件可以修復(fù)它:
{
"Version" : "2012-10-17",
"Statement" : [ {
"Effect" : "Allow",
"Principal" : {
"AWS" : "arn:aws:iam::redacted:role/MyLambdaFunctionNameRole-DNV2M7OYIFMX"
},
"Action" : "secretsmanager:GetSecretValue",
"Resource" : "*"
}
我不確定為什么調(diào)用沒有像將版本階段添加到機(jī)密管理器API調(diào)用那樣解決問題...但那是另一天。GetSecretStringWithStage("my_secret_name","AWSCURRENT")
- 1 回答
- 0 關(guān)注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消