特定の KMS キーのみで暗号化されたオブジェクトを s3 バケットにアップロードしようとしています。別の拒否条件でポリシーを作成しましたが、機能していないようです。誰かが私がどこで間違っている可能性があるかを提案できますか?
このポリシーを 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また、以下の拒否ステートメントにもかかわらず、アカウントの別のキーを使用してアップロードできます。
バケット ポリシーで指定すると同じポリシーが機能しますが、ここでは、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"
}
}
}
]
}
また、NON ssl-requests が拒否されているかどうかをテストするにはどうすればよいですか? AWSのサービスと通信する際にデフォルトでSSLを使っていると思うのでaws cliは使えません。
前もって感謝します。