情況是:
使用 SAM/CloudFormation 創建 lambda 函式。附加策略以允許此功能訪問現有存盤桶(在同一區域)。這看起來像這樣:
MyFunction:
Type: AWS::Serverless::Function
Properties:
.....
Policies:
- Statement:
- Effect: Allow
Action:
- "s3:ListBucket"
- "s3:PutObject"
- "s3:GetObject"
Resource:
- "arn:aws:s3:::my-great-existing-bucket"
- "arn:aws:s3:::my-great-existing-bucket/*"
這意味著:在不修改現有存盤桶的策略的情況下,新創建的 lambda 函式現在可以訪問該存盤桶。
但在這種情況下,這個已經存在的存盤桶使用現有的客戶管理的 KMS 密鑰(再次在同一區域)進行額外加密,因此仍然會拒絕對 Lambda 函式的訪問。
目標是將使用現有密鑰的策略也直接添加到云形成模板。
我找到了這個鏈接:https :
//docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html
我的解釋是,指定的目標通常只能以相反的方式實作:您需要修改 KMS 密鑰的策略。但是他們的 Key 當然不是通過 Cloud Formation Stack 管理的,因此在這里無法管理(或者我錯了嗎?)。
那么實作它的唯一方法是激活 KMS 密鑰的通用 IAM 策略?
https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam
這種理解正確嗎?
uj5u.com熱心網友回復:
那么實作它的唯一方法是激活 KMS 密鑰的通用 IAM 策略?
是的。沒錯。如果您的客戶管理的 KMS 密鑰沒有它,您必須修改 KMS 策略以允許 lambda 角色。如果您激活通用 IAM 策略,那么您只需修改具有 KMS 密鑰權限的 lambda 執行角色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/319056.html
