Amazon web services 如何使用CloudFormation从别名获取AWS SSM密钥Arn?

Amazon web services 如何使用CloudFormation从别名获取AWS SSM密钥Arn?,amazon-web-services,serverless-framework,aws-kms,Amazon Web Services,Serverless Framework,Aws Kms,是否可以使用别名使用CloudFormation获取KMS密钥ARN? 我想为AWS帐户中的密钥授予特定权限 像下面这样的 - Effect: Allow Action: kms:Decrypt Resource: - 'Fn::GetAtt': - 'alias/someAliasOfAKMSKey' - 'arn' 您可以这样做: - Effect: Allow Action: - kms:Decrypt Res

是否可以使用别名使用CloudFormation获取KMS密钥ARN? 我想为AWS帐户中的密钥授予特定权限

像下面这样的

  - Effect: Allow
    Action: kms:Decrypt
    Resource:
      - 'Fn::GetAtt': 
        - 'alias/someAliasOfAKMSKey'
        - 'arn'

您可以这样做:

- Effect: Allow
  Action:
  - kms:Decrypt
  Resource:
  - !Sub 'arn:aws:kms:${AWS::Region}:${AWS::AccountId}:key/someKeyNameOfAKMSKey'

这很好,但它不允许您解密密钥本身,只允许解密别名,然后您需要使用SSM aws sdk从该别名获取密钥,使用sdk而不是密钥。请参考我通过terraform完成的,但我希望有一种方法可以通过CloudFormation完成。我明白了,如果您遇到这种情况,您可以简单地添加密钥名作为资源,就像使用别名一样。我用这个选项编辑了答案(事实上,对于一个个人项目,我也必须这样做,包括资源中的别名和密钥,但我不确定这是否是您需要的),我认为这个答案是误导性的,因为您不能在kms中使用别名:解密策略:感谢您的观点,我编辑了答案,以便消除任何混淆