CloudFormation KMS Вопросы по шифрованию - PullRequest
0 голосов
/ 25 октября 2018

Имеется шаблон CloudFormation, который определяет:

  • Ключ KMS
  • Псевдоним ключа KMS
  • Корзина S3

Если по какой-либо причине мне нужно удалить стек CloudFormation и выполнить повторное развертывание, при удалении сохраняются созданный ключ KMS и псевдоним.(Это разумно, я не хочу потерять свой ключ, с которым все было зашифровано).

Но это означает, что при повторном развертывании стека происходит сбой, поскольку псевдоним с таким именем уже существует.

Я могу удалить Псевдоним через CLI и повторно развернуть, что создаст Псевдоним для нового Ключа KMS.

Есть ли способ для стека CloudFormation использовать существующий ключ KMS изпервоначальное развертывание?

Кроме того: я не на 100% уверен в том, что произойдет с зашифрованными данными в корзине S3 с измененным псевдонимом; знает ли AWS, что автоматически ищет предыдущий ключ KMS, с которым он был зашифрован, или выполняетповторное шифрование?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Мне удалось создать зашифрованное ведро S3, используя один стек:

Resources:
  S3EncryptionKey:
    Type: AWS::KMS::Key
       ...

  EncrypedS3Bucket:
    Type: AWS::S3::Bucket
      Properties:
        BucketEncryption:
          ServerSideEncryptionConfiguration:
            - ServerSideEncryptionByDefault:
                KMSMasterKeyID:
                  Ref: S3EncryptionKey
                SSEAlgorithm: aws:kms
0 голосов
/ 25 октября 2018

Я предлагаю вам иметь один стек, который создает только KMS, и экспортировать его значение на выходы :

Resources:
  KmsKey:
    Type: AWS::KMS::Key
    Properties: 
      ...

Outputs:
  S3KmsKeyId:
    Description: The KMS Key used
    Value: !Ref KmsKey
    Export:
      Name: S3KmsKeyId

Тогда у вас может быть второй стек, который создает только S3 Bucketгде вы ссылаетесь на экспортируемое значение :

Resources:
  S3Bucket:
      Type: AWS::S3::Bucket
      Properties: 
        ...
        BucketEncryption:
          ServerSideEncryptionConfiguration: 
          - ServerSideEncryptionByDefault: 
              KMSMasterKeyID: !ImportValue S3KmsKeyId
              SSEAlgorithm: aws:kms
...