2016-12-13 1 views
2

Я пытаюсь потребовать, чтобы все объекты, помещенные в ведро, были зашифрованы с помощью определенного ключа KMS. Мне удалось потребовать шифрование KMS, но спецификация ключа не работает. Вот текущая политика у меня есть (SANS настоящие имена ковшовые и идентификаторы):Требовать шифрование KMS с определенным идентификатором ключа в политике ведомости S3

{ 
    "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" 
       } 
      } 
     } 
    ] 
} 

Это правильно отрицает загрузку без каких-либо стороны сервера шифрования указано, но по-прежнему позволяет использовать клавишу s3 по умолчанию.

ответ

3

Если есть несколько операторов условий или если к одному оператору условия добавлено несколько ключей, условия оцениваются с использованием логического И.

http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition

Это говорит о том, что двойное условие политики будет отрицать, только если обе строки не равны (то есть, если шифрование не используется и ключ-идентификатор не так) ,

Разделяя тесты для s3:x-amz-server-side-encryption и s3:x-amz-server-side-encryption-aws-kms-key-id на две отдельные Deny политические заявления должны быть исправление.

Смежные вопросы