![](/img/trans.png)
[英]How to allow access to specific S3 bucket from specific VPC on different region
[英]Allow S3 Bucket access from either specific VPC or console
我在S3存儲桶(API密鑰)的文件中存儲了一些應用程序配置。 我將S3存儲桶配置為僅允許通過特定的VPC端點進行訪問,該端點將密鑰與特定環境聯系在一起,並防止例如生產密鑰在登台或測試環境中意外使用。
但是有時我需要修改這些鍵,這很痛苦。 當前存儲桶策略阻止控制台訪問,因此我必須刪除存儲桶策略,更新文件,然后替換該策略。
如何允許從控制台,特定的VPC端點進行訪問,而在其他地方沒有訪問權限?
目前的政策,我已經嘗試過但失敗了:
{
"Version": "2012-10-17",
"Id": "Policy12345",
"Statement": [
{
"Sid": "Principal-Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-keys-staging",
"arn:aws:s3:::my-keys-staging/*"
]
},
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-keys-staging",
"arn:aws:s3:::my-keys-staging/*"
],
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-vpceid"
}
}
}
]
}
如評論中所述,擁有明確的Deny
不能被覆蓋。 通過包含與特定VPC綁定的Deny
,您不能添加任何其他Allow
元素來抵消該Deny
語句。
選項1
一種選擇是將“如果不是從VPC abc拒絕,則”語句更改為“如果從VPC abc拒絕,則允許”語句。 這將允許您向策略中添加其他Allow
語句,以允許您從其他位置訪問存儲桶。
但是,這樣做有兩個非常重要的警告:
因此,通過將Deny
更改為Allow
,您將在存儲桶級別不再具有VPC限制。
這可能會或可能不會在您組織的安全要求之內。
選項2
相反,您可以修改現有的Deny
以添加其他條件,這些條件將在“與”情況下起作用:
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-vpceid",
"aws:username": "your-username"
}
}
在以下情況下,這種類型的條件將拒絕請求:
因此,除了允許用戶登錄從任何地方訪問存儲桶之外,您應該能夠限制對VPC的請求限制。
注意執行此操作將打開的安全漏洞。 您應該確保將用戶名限制為(a)未分配任何訪問密鑰,並且(b)啟用了MFA。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.