2016-12-13 1 views
2

J'essaie d'exiger que tous les objets placés dans un compartiment soient cryptés avec une clé KMS spécifique. J'ai réussi à exiger le cryptage KMS, mais la spécification de clé ne fonctionne pas. Voici la politique actuelle je (sans vrais noms de seau et ids):Nécessite un cryptage KMS avec un ID de clé spécifique dans la stratégie de compartiment 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" 
       } 
      } 
     } 
    ] 
} 

Ce dénie correctement les téléchargements sans cryptage sever côté spécifié, mais il permet encore à l'aide de la touche s3 par défaut.

Répondre

3

S'il existe plusieurs opérateurs de condition, ou s'il existe plusieurs clés attachées à un opérateur de condition unique, les conditions sont évaluées à l'aide d'un ET logique.

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

Cela donne à penser que la politique à double condition ne ferait que nier si les deux chaînes ne sont pas égaux (qui est, si le cryptage est pas utilisé et la clé id est erroné) .

les tests de séparation s3:x-amz-server-side-encryption et s3:x-amz-server-side-encryption-aws-kms-key-id en deux énoncés de politique Deny distincts devraient être le correctif.