繁体   English   中英

S3 仅存储由一个默认 KMS 密钥加密的对象并限制所有其他对象

[英]S3 to store only objects encrypted by one default KMS key and restrict all others

我正在尝试将 object 上传到 s3 存储桶,仅使用特定的 KMS 密钥加密。 我创建了一个具有单独拒绝条件的策略,但它似乎不起作用。 有人可以建议我哪里出错了吗?

我使用 AWS CLI 测试了此策略 -

aws s3api put-object --bucket test-buck --key testimage.jpg --body testimage.jpg --ssekms-key-id arn:aws:kms:us-east-1:account-id:key/NOT-MY-key-id --server-side-encryption aws:kms

尽管有以下拒绝声明,但我可以使用我帐户中的另一个密钥上传testimage.jpg

如果我在 Bucket 策略中给出相同的策略,但在这里我希望将策略分配给 s3 使用的我的角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::test-buck/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::test-buck/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:<account-id>:key/<my-default-kmskey-id>"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Deny",
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::test-buck/*",
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]
}

另外,我如何测试非 ssl 请求是否被拒绝? 我不能使用 aws cli,因为我认为它在默认情况下与 AWS 服务通信时使用 SSL。

提前致谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM