我有一些應用程序配置存儲在S3存儲桶(api密鑰)中的文件中。我將S3存儲桶配置爲僅允許通過特定的VPC端點進行訪問,該端點將鍵連接到特定環境,並防止例如在臨時或測試環境中偶然使用生產密鑰。允許從特定的VPC或控制檯訪問S3存儲桶
然而偶爾我需要修改這些鍵,這是一個痛苦。當前存儲桶策略會阻止控制檯訪問,因此我必須刪除存儲桶策略,更新文件,然後替換策略。
我該如何允許從控制檯,特定的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"
}
}
}
]
}
爲什麼你有'拒絕'條件? Amazon S3中的內容默認爲私有,因此只有在您希望重寫通過其他方式授予的權限(例如授予IAM用戶)時才需要「拒絕」。因此,您無法分配權限以允許特定用戶(例如您!)訪問存儲桶。 –
要添加到@JohnRotenstein評論,請參閱http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#AccessPolicyLanguage_Interplay,具體爲「默認拒絕的請求與明確拒絕的區別在一個策略中是很重要的,默認情況下,拒絕請求,但這可以被允許覆蓋,相反,如果策略明確拒絕請求,則拒絕不能被覆蓋。你已經指定了一個明確的拒絕,它不能被覆蓋。 – jarmod