首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >新的密钥策略将不允许您在未来更新关键策略。

新的密钥策略将不允许您在未来更新关键策略。
EN

Stack Overflow用户
提问于 2017-02-01 15:05:10
回答 4查看 17.4K关注 0票数 12

标题说明了一切。每当我试图通过AWS CloudFormation模板创建一个KMS键时,我就会得到这个错误。我是以具有管理权限的IAM用户的身份创建模板的,我希望在同一个具有KMS权限的AWS帐户中的任何IAM用户都可以管理该密钥。我使用以下YAML资源定义作为密钥:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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"

我不能仅仅为主体硬编码我的用户名,因为我希望这个模板能够被任何拥有堆栈创建权限的人实例化。有谁知道如何解决这个非常令人沮丧的问题吗?提前谢谢。

编辑

我应该指出,我不再在CloudFormation模板中定义KMS关键策略。实际上,我现在完全避免在CF模板中定义任何安全资源,比如IAM实体、策略和ACM证书。我在这个GitHub问题中描述了原因。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-01 15:50:01

您缺少了Resource: "*"属性。这对我起了作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  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: "*" 是必需的,并且是唯一可能的值。

资源-(必需)在关键策略中,对资源使用"*“,这意味着”此CMK“。一个关键的策略只适用于它所附属的CMK。

有关示例,请参见https://aws.amazon.com/premiumsupport/knowledge-center/update-key-policy-future/

票数 14
EN

Stack Overflow用户

发布于 2020-12-15 05:55:50

如果这对某人有帮助,请注意https://aws.amazon.com/premiumsupport/knowledge-center/update-key-policy-future/中的备注

重要:确保您创建的关键策略允许当前用户管理CMK。

在从管道中部署模板时,我遇到了这个问题,而建议的解决方案对我不起作用。用于部署模板的角色具有相应的kms权限,但它也需要在密钥策略的主体中!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  - Effect: Allow
    Action: kms:*
    Resource: "*"
    Principal:
      AWS:
        - !Sub arn:aws:iam::${AWS::AccountId}:role/PipelineRole 
票数 6
EN

Stack Overflow用户

发布于 2019-04-22 10:34:38

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LambdaKmsKey:
  Type: AWS::KMS::Key
  Properties:
    Description: Key for Lambda function
    Enabled: True
    KeyPolicy:
      Version: '2012-10-17'
      Id: key-consolepolicy-3
      Statement:
        - Sid: Enable IAM User Permissions
          Effect: Allow
          Principal:
            AWS: arn:aws:iam::AwsAccountId:root
          Action: kms:*
          Resource: "*"
        - Sid: Allow use of the key
          Effect: Allow
          Principal:
            AWS:
              Fn::GetAtt: [ IamRoleLambdaExecution, Arn ]
          Action:
            - kms:Decrypt
            - kms:Encrypt
          Resource: "*"

此策略有点危险,因为它给帐户下的任何用户或角色以kms:解密权限来解密和查看密钥,这是不安全的,而且无法通过笔试。

如果你想拿走解密的权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LambdaKmsKey:
  Type: AWS::KMS::Key
  Properties:
    Description: Key for Lambda function 
    Enabled: True
    KeyPolicy:
      Version: '2012-10-17'
      Id: key-consolepolicy-3
      Statement:
        - Sid: Enable IAM User Permissions
          Effect: Allow
          Principal:
            AWS: arn:aws:iam::AwsAccountId:role/sudo
          Action:
            - kms:Create*
            - kms:Describe*
            - kms:Enable*
            - kms:List*
            - kms:Put*
            - kmzs:Update*
            - kms:Revoke*
            - kms:Disable*
            - kms:Get*
            - kms:Delete*
            - kms:ScheduleKeyDeletion
            - kms:CancelKeyDeletion
            - kms:Encrypt
          Resource: "*"
        - Sid: Enable IAM User Permissions
          Effect: Allow
          Principal:
            AWS: arn:aws:iam::AwsAccountId:role/admin
          Action:
            - kms:Create*
            - kms:Describe*
            - kms:Enable*
            - kms:List*
            - kms:Put*
            - kmzs:Update*
            - kms:Revoke*
            - kms:Disable*
            - kms:Get*
            - kms:Delete*
            - kms:ScheduleKeyDeletion
            - kms:CancelKeyDeletion
            - kms:Encrypt
          Resource: "*"
        - Sid: Enable IAM User Permissions
          Effect: Allow
          Principal:
            AWS: arn:aws:iam::AwsAccountId:root
          Action:
            - kms:List*
            - kms:Get*
            - kms:Encrypt
          Resource: "*"
        - Sid: Allow use of the key
          Effect: Allow
          Principal:
            AWS:
              Fn::GetAtt: [ IamRoleLambdaExecution, Arn ]
          Action:
            - kms:Decrypt
            - kms:Encrypt
          Resource: "*"

通过这种方式,除了解密到sudo和admin角色之外,我还授予了所有其他权限(确保您有这些角色)。

我给角色和具有列表、获取和加密权限的用户提供列表、获取和加密权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41991480

复制
相关文章
缓存更新策略
问题:项目中,Redis用了缓存热点数据,持久化数据在MySQL DB中;那么Redis缓存数据什么时候更新呢?
awk
2018/09/25
1.5K0
StatefulSet更新策略
在 Kubernetes 中,更新应用程序时通常需要更新其运行时组件,例如容器映像。对于 Deployment 资源,可以使用 RollingUpdate 策略来控制更新的速率和失败的回滚。但是,对于 StatefulSet 资源,更新策略稍有不同,因为 StatefulSet 管理的 Pod 具有固定的网络标识符和存储卷。
玖叁叁
2023/04/30
7391
MP字段更新策略
添加@TableField(updateStrategy = FieldStrategy.IGNORED)
阿超
2022/10/28
1K0
StatefulSet更新策略示例
我们将使用之前创建的 StatefulSet 资源 example,它包含 3 个 Pod,每个 Pod 中都运行一个简单的 HTTP 服务器。为了演示更新过程,我们将更新 Pod 中的容器映像版本。
玖叁叁
2023/04/30
4260
IoT的未来——零信任访问策略
Gartner预测,到2020年年底,全球将部署189亿台物联网设备,在这庞大数字的背后,随之而来的安全问题也愈发重要,一旦出现网络攻击事件,将有可能造成物联网设备失控、采集到的信息被篡改,物联网平台中的敏感数据泄漏等严重后果。
SDNLAB
2020/11/16
9980
IoT的未来——零信任访问策略
App更新策略课程-实现进度更新
前言 前面的课程已经实现了通过Http请求API检查更新,定义了后台下载服务实现了apk下载,如果没有看过前面的课程可以看以下博文: App更新策略课程-检查更新实现 App更新策略课程-定义后台更新
巫山老妖
2018/07/20
4800
Deployment滚动更新策略RollingUpdate
当需要升级Deployment中的Pod镜像或者配置时,可以使用滚动更新策略,避免出现服务中断或者数据丢失。滚动更新策略可以让新的Pod在替代旧的Pod之前先完成启动,这样就能保证服务的持续可用性。Kubernetes中Deployment对象提供了两种滚动更新策略:RollingUpdate和Recreate。
玖叁叁
2023/04/29
1.2K0
App更新策略课程-检查更新实现
这节课来正式讲解App更新策略的第一部分,检查更新实现,本节课来教大家如何集成android-async-http这个比较优秀的网络库,由于Android6.0已经抛弃使用HttpClient这个类,所以集成这个网络库的时候一定要选择最新的版本,这里是1.4.9,如果大家以后想换成其他网络库,比如Volley,Okhttp再或者是retrofit这样比较流行的Http网络请求库,只要针对相应的方法替换成新的网络库的方法就行了。 我们来看如何实现检查更新,说白了就是通过调用服务端给我们提供的API接口,我们通
巫山老妖
2018/07/20
7390
混合云安全的5个关键策略
混合云基础设施最大的吸引力之一是其灵活性和可扩展性。首席信息官们可以更好地控制他们的数据,更快地扩大业务需求,并改进业务,优化成本。企业的混合云安全策略也应该如此:决定哪个环境适合哪些数据。不要让与不
静一
2018/06/08
1.2K0
「知识」SEO策略的4个关键领域
献给未来的我 每天的坚持 一个人想要成功, 要么组建一个团队,要么加入一个团队! 在这个瞬息万变的世界里, 单打独斗,路就越走越窄, 选择志同道合的伙伴,就是选择成功。 用团队去实现一个梦想。 一个人是谁并不重要, 重要的是他站在那里的时候, 在他身后站着的是一群什么样的人。 好几天没有写文章了,有时候在思考:什么是SEO?怎样才能做好SEO?最近,一直在看国外有关SEO网站,发现他们总有一些专业的SEO研究者,在发表一些对搜索引擎优化的看法或技巧,虽然,是针对google,但对百度一样有着借鉴作用。 今天
黄伟SEO
2018/05/17
5890
App更新策略课程介绍
知道你们喜欢美女,就选了一张做封面( ̄_, ̄ )。 概述 App更新是应用当中很常见的一个功能,基本上联网的app都应该具备这样的功能,对于更新迭代比较快速的产品,应用更新升级能让用户以最快的速度体验到最新功能和特性,对提高拉新留存率有不错的效果。本次课程来教会大家如何去实现这样的一个功能,分析具体的应用场景和技术,来让开发者满足产品的需求。 课程目标 学会如何通过AsyncHttp这样的框架来完成API网络请求 学会如何创建并绑定一个service 学会如何通过HttpURLConnection来下载文件
巫山老妖
2018/07/20
3290
Deployment滚动更新策略Recreate
Recreate策略是另一种滚动更新策略,它会先删除旧的Pod,然后再创建新的Pod。在进行滚动更新时,所有的Pod都会被同时停止,然后全部替换为新的Pod。Recreate策略的优点是可以避免新旧Pod的共存问题,但会在升级期间中断服务。
玖叁叁
2023/04/29
5260
Redis 缓存主动更新策略
Cache Aside Pattern:由缓存的调用者,在更新数据库的同时更新缓存Read/Write Through Pattern:缓存与数据库整合为一个服务,由服务来维护一致性。调用者调用该服务,无需关心缓存一致性问题Write Behind Caching Pattern:调用者只操作缓存,由其他线程异步的将缓存数据持久化到数据库,保证最终一致相对来讲,Cache Aside Pattern 可靠性更高一点操作缓存和数据库时要考虑如下几个问题- 删除缓存还是更新缓存?- 更新缓存:每次更新数据库都更
ruochen
2022/08/09
4.2K0
【Concent杂谈】精确更新策略
一晃就到2020年了,时间过得真的是飞快,伴随着q群一些热心小伙伴的反馈和我个人实际的业务落地场景,Concent已进入一个非常稳定的运行阶段了,在此开年之际,新开一个杂谈系列,会不定期更新,用于做一些总结或者回顾,内容比较随心,想到哪里写到哪里,不会抬拘于风格和形式,重在探讨和温故知新,并激发灵感,本期杂谈的主题是精确更新,文章将综合对比现有业界的各种方案,来看看Concent如何另辟蹊径,给React加上精确更新这门不可或缺的重型武器吧。
腾讯新闻前端团队
2020/01/15
1.4K0
【Concent杂谈】精确更新策略
缓存服务的更新策略有哪些?
一般在项目中,最消耗性能的地方就是后端服务的数据库了。而数据库的读写频率常常都是不均匀分布的,大多情况是读多写少,并且读操作(select)还会有一些复杂的判断条件,比如 like、group、join 等等,这些语法是非常消耗性能的,所有会出现很多的慢查询,因此数据库很容易在读操作的环节遇到瓶颈。
奎哥
2018/08/31
6100
缓存服务的更新策略有哪些?
缓存服务的更新策略有哪些?
在互联网项目开发中,缓存的应用是非常普遍了,缓存可以帮助页面提高加载速度,减少服务器或数据源的负载。
纯洁的微笑
2019/09/05
4980
缓存服务的更新策略有哪些?
缓存服务的更新策略有哪些?
在互联网项目开发中,缓存的应用是非常普遍了,缓存可以帮助页面提高加载速度,减少服务器或数据源的负载。
三哥
2019/10/28
5010
缓存服务的更新策略有哪些?
maven快照更新策略_eclipse更新maven包
A项目依赖于项目B,B每次改动就赋予一个新版本号,然后告诉A我改版本好了啊,每次改动都得告诉,有时忘了就麻烦了。
全栈程序员站长
2022/11/09
6150
App更新策略课程-定义后台更新服务
上节课给大家讲了,如何实现检查更新,通过Android-async-http这个网络库进行Http请求服务器API,响应返回更新信息。这节课来将如何通过绑定一个Service来启动一个服务,并通过它来下载我们的Apk文件。 首先我们创建一个后台服务跟我们的Activity相关联,这里取名AppUpdateService,因为我们是需要跟Activity绑定在一起,所以需要通过bindService的方式来启动服务,启动服务成功之后,则开启一个线程来下载apk,在下载的过程中,我们可以通过handler来更新
巫山老妖
2018/07/20
5400
Maven Snapshot 更新策略配置方法
在微服务的项目开发中,特别是更新比较频繁的项目,经常会遇到一些项目依赖的问题,依赖的一个项目经常更新,所以我下拉更新项目时候经常出现代码不一致,需要删了对应jar仓库,重新下拉最新的jar版本。ps,所以对于更新频繁的项目jar版本可以设置SNAPSHOT快照版本,等项目稳定才设置为RELEASE版本
SmileNicky
2023/07/10
9660
Maven Snapshot 更新策略配置方法

相似问题

在AWS中使用Terraform时出现错误:“新的密钥策略将不允许您在将来更新密钥策略。”

215

memcache:更新密钥的策略?

18

使用terrform更新KMS密钥策略

21

了解AWS访问密钥的允许操作策略列表

10

新令牌不允许访问策略

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文