dag*_*gvl 3 encryption amazon-s3 amazon-web-services aws-kms
我正在尝试要求使用特定 KMS 密钥对放入存储桶中的所有对象进行加密。我设法要求 KMS 加密,但密钥规范不起作用。这是我目前的政策(没有真实的存储桶名称和 ID):
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenyInsecureCommunications",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket1,
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
},
{
"Sid": "DenyIncorrectEncryptionHeader",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket1/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms",
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:eu-central-1:123456789:key/12345-123-notmy-keyid-1234566"
}
}
},
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket1/*",
"Condition": {
"Null": {
"s3:x-amz-server-side-encryption": "true"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
这正确地拒绝了没有指定任何服务器端加密的上传,但它仍然允许使用默认的 s3 密钥。
如果有多个条件运算符,或者如果有多个键附加到单个条件运算符,则使用逻辑 AND 评估条件。
http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition
这表明双条件策略只会在两个字符串不相等的情况下拒绝(即,如果未使用加密且密钥 ID 错误)。
分离试验
s3:x-amz-server-side-encryption
,并
s3:x-amz-server-side-encryption-aws-kms-key-id
分成两个独立的Deny
政策声明应的修补程序。
归档时间: |
|
查看次数: |
2285 次 |
最近记录: |