当前位置: 首页 > 知识库问答 >
问题:

使用Cloudformation创建KMS密钥时,消息“没有IAM权限以处理AWS::KMS::Key资源上的标记”

百里芷阳
2023-03-14

在使用Cloudformation创建新的KMS密钥时,我在“Status Reason”列中看到以下消息:

没有IAM权限处理AWS::KMS::Key资源上的标记

AWSTemplateFormatVersion: "2010-09-09"
Description: "KMS key"
Outputs:
  KeyArn:
    Value: !Sub "${KmsKey.Arn}"
Resources:
  KmsKey:
    Properties:
      Description: "KMS key"
      Enabled: true
      EnableKeyRotation: false
      KeyPolicy:
        Version: "2012-10-17"
        Statement:
          - Sid: "Enable IAM User Permissions"
            Effect: "Allow"
            Principal: 
              AWS: !Sub "arn:aws:iam::${AWS::AccountId}:root"
            Action: "kms:*"
            Resource: "*"          
    Type: "AWS::KMS::Key"
  KmsKeyAlias:    
    Properties:
      AliasName: "alias/KmsKey"
      TargetKeyId: !Ref "KmsKey"
    Type: "AWS::KMS::Alias"
- Action:
    - kms:Create*
    - kms:List*
  Effect: "Allow"
  Resource: "*"
- Action:
    - kms:Describe*
    - kms:Enable*
    - kms:Put*
    - kms:Update*
    - kms:Get*
    - kms:Decrypt
    - kms:Encrypt
  Effect: "Allow"
  Resource:
    - "arn:aws:kms:*:*:key/*"

共有1个答案

韩单弓
2023-03-14

我的角色缺少以下操作:

- kms:TagResource
 类似资料:
  • 我无法解决问题,而且文件也没有什么帮助。 我有一个lambda需要使用KMS解密一个值。我正在使用sam部署我的lambda。最初我尝试添加策略声明

  • decrypt方法中没有提供KMS密钥。这是否意味着KMS密钥在cyphertext Blob中被加密了?如果是... 如何授予解密加密密文Blob的权限? 如果要解密AWS服务中的值,是否创建IAM角色来执行此操作,并配置KMS密钥以允许该角色进行解密?

  • 我们有许多SecureString SSM参数存储值是通过bash脚本自动创建的。使用通过CloudFormation创建的特定于环境的KMS密钥+别名对其进行加密。 模板中还有EC2实例的IAM角色,它们需要允许检索和解密SSM参数。为了允许这一点,我们通过引用IAM角色ARN作为原则,在创建KMS密钥时授予对这些IAM角色的访问权。 但是,我们的AWS帐户中有一些非特定于环境的SSM变量,这些

  • 我是AWS KMS(钥匙管理服务)的新手。 目前,我想创建一个启用服务器端加密(SSE)并将消息发布到订阅Amazon SQS队列的SNS。 Cloudformation的资源部分如下:(未显示CMK密钥和SNS Arn) 如您所见,只有SNS主题启用了SSE,但SQS只是订阅SNS主题。 当我试图将消息发布到SNS主题时。SQS队列(MySQS)可以成功接收消息,但其主体似乎未加密(仍为人类可读

  • 我无法解密从S3存储桶收到的消息。它们用KMS密钥加密。我使用Node和Typescript。 我已经尝试了一些东西,但并不能使它工作。查看此链接:https://github.com/gilt/node-s3-encryption-client/issues/3和https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html 我的

  • 假设AWS堆栈是使用CloudFormation创建的。现在,其中一种资源在云层形成之外进行了修改。 1) 有没有可能让CloudFormation专门创建这些资源?根据我的理解,我们不能这样做,因为CloudFormation不能识别差异,因此不能创建修改后的资源。我的观察正确吗? 2) 此外,如果在CloudFormation之外进行了修改,我需要哪些选项才能将堆栈恢复到其原始状态?