S3 для хранения только объектов, зашифрованных одним ключом KMS по умолчанию, и ограничения всех остальных - PullRequest
2 голосов
/ 30 мая 2020

Я пытаюсь загрузить объект в корзину s3, зашифрованную ТОЛЬКО указанным c ключом 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, используя другой ключ из моего учетной записи, несмотря на приведенные ниже утверждения deny.

Та же политика работает, если я указываю ее в политике 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"
                }
            }
        }
    ]
}

Кроме того, как я могу проверить, не отклоняются ли NON ssl-запросы? Я не могу использовать aws cli, потому что думаю, что по умолчанию он использует SSL при взаимодействии со службами AWS.

Заранее спасибо.

...