我在AWS賬戶上有一個Amazon S3桶 "my-bucket"。現在,該帳戶上的每個人都可以下載和放置物件到 "my-bucket"。然而,我希望每個人都能從桶中下載/洗掉物件,而只有一個服務角色(lambda)能夠將物件放入桶中。
lambda 角色已經可以將物件放到桶中,所以我想制定一個桶策略,只允許我的 lambda 角色將物件放到桶中,但仍然允許其他人下載/洗掉桶中的物件。然而,我不確定這個桶的策略是什么樣子的。我想我必須使用一個條件?類似于?
{
"Version":"2012-10-17",
"宣告":[
{
"Sid": "MyRule",
"效果": "拒絕"。
"Action":["s3:PutObject"],
"資源"。["arn:aws:s3::my-bucket/*", "arn:aws:s3::my-bucket*"]。
"Condition":{"NOT EQUAL TO LAMBDA ROLE???" }
}
]
}
uj5u.com熱心網友回復:
Bucket策略是基于資源的策略,所以原則是可以用來限制對特定身份的訪問。 你可以準備像下面這樣的策略,讓每個人都能下載和洗掉物件
。{
"Version":"2012-10-17",
"宣告":[
{
"Sid": "PublicReadDelete",
"效果": "允許",
"主體": "*",
"Action":["s3:GetObject", "s3:DeleteObject"]。
"資源":["arn:aws-cn:s3::/*"]
}
]
}
下面是lambda放置物件的策略
{
"Version":"2012-10-17",
"宣告":[
{
"Sid": "LambdaUpload",
"效果": "允許",
"主旨": "<你的lambda函式ARN>"。
"Action":["s3:PutObject"],
"資源":["arn:aws-cn:s3::/*"]
}
]
}
你可以在同一個策略中結合這兩條陳述句。你只需要替換你的lambda函式ARN和S3 bucket ARN或名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/308351.html
標籤:
