2017-02-01 6 views
0

В названии говорится все. Я получаю эту ошибку всякий раз, когда я пытаюсь создать ключ KMS с помощью шаблона AWS CloudFormation. Я создаю шаблон как пользователь IAM с административными разрешениями, и я хочу, чтобы ключ управлялся любым пользователем IAM в той же учетной записи AWS с разрешениями KMS. Я использую следующий YAML определение ресурсов для ключа:Новая ключевая политика не позволит вам обновлять ключевую политику в будущем

LambdaKmsKey: 
    Type: AWS::KMS::Key 
    Properties: 
     Enabled: true 
     KeyPolicy: 
     Version: 2012-10-17 
     Statement: 
     - Effect: Allow 
      Action: kms:* 
      Principal: 
      AWS: <Principle> 

И все же, НИ ОДИН из следующих значений для <Principal> не работает, даже если я пытаюсь создать стек в качестве корневого пользователя!

  • !Join [ "", [ "arn:aws:iam::", !Ref "AWS::AccountId", ":root" ] ]
  • !Join [ "", [ "arn:aws:sts::", !Ref "AWS::AccountId", ":root" ] ]
  • !Ref "AWS::AccountId"

Я не могу просто жёстко моего имени пользователя для Принципала, потому что я хочу этот шаблон, чтобы быть инстанциируемым кем-либо с правами создания стеки. Кто-нибудь знает, как решить эту чрезвычайно неприятную ситуацию? Заранее спасибо.

+0

Какое сообщение об ошибке вы получаете при попытке стека CloudfFormation? – spg

+0

@ Simon-Pierre Название вопроса - моя ошибка – Rabadash8820

ответ

3

Вам не хватает атрибута Resource: "*". Это работает для меня:

LambdaKmsKey: 
    Type: AWS::KMS::Key 
    Properties: 
     Enabled: true 
     KeyPolicy: 
     Version: 2012-10-17 
     Statement: 
     - Effect: Allow 
      Action: kms:* 
      Resource: "*" 
      Principal: 
      AWS: !Join [ "", [ "arn:aws:iam::", !Ref "AWS::AccountId", ":root" ] ] 

Resource: "*"is required and is the only possible value: - "это CMK"

ресурсов (обязательно) В ключевой политики, можно использовать "*" для ресурса, что означает Ключевая политика применяется только к CMK, к которой она привязана.

См. Например, https://aws.amazon.com/premiumsupport/knowledge-center/update-key-policy-future/.

+0

omg Я бы смотрел на это целыми днями! Вы правы, «Ресурс:« * »« все, что мне нужно. Я думаю, что это смешно, что вы должны включить строку ресурсов в политику на основе ресурсов, когда вам не нужно ставить строку Principal в правилах пользователя ... но хорошо, спасибо за быстрый ответ! – Rabadash8820

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

  • Нет связанных вопросов^_^