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

只授予Amazon别名密钥访问权限的IAM策略

富钧
2023-03-14
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "NotAction": [
        "iam:*",
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "aws:MultiFactorAuthAge": "false"
        }
      }
    },
    {
      "Effect": "Allow",
      "Resource": "arn:aws:kms:us-east-1:111111111111:alias/aws/*",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Condition": {
        "Null": {
          "aws:MultiFactorAuthAge": "false"
        }
      }  
    }
  ]
}

使用IAM策略模拟器时,似乎必须提供对完整密钥arn的访问(arn:aws:kms:us-East-1:111111111111:key/ABCD123-ACBD-1234-ABCD-ACBCD1234ABCD),而不是别名(arn:aws:kms:us-East-1:1111111111:alias/AWS/*)

有没有更好的办法来管理这个?

我知道我可以使用密钥策略管理对CMKs的访问,并且不允许从IAM进行访问,但是您不能在KMS密钥策略中使用组作为主体

共有1个答案

仉成益
2023-03-14

您可以使用密钥别名作为API的资源,这些API用于控制对作用于别名本身的API的访问(例如,创建/删除别名),并且别名不能用作ARN来代替密钥ID来控制对基础密钥的访问。您可以参考以下URL中的表,该表解释了在KMS API中使用哪种资源/ARN。

http://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html

您可以考虑采用以下方法:允许IAM组承担IAM角色,并允许在CMK的密钥策略中使用IAM角色。

 类似资料:
  • 我们目前正在使用API密钥来保护对API网关的访问。然而,我们正在转向具有访问/密钥的IAM模型。我知道swagger不允许我们这样做(我们目前在swagger中设置了api_key以启用api密钥身份验证)。 我已经创建了各种操作所需的策略,如下所示: 我的lambda函数如下所示。我仍然是云形成的新手,并且希望得到一些关于我可以做些什么来添加lambda授权器的帮助(我相信它会在事件中-

  • 我做了一些研究,但在K8s文档中找不到答案。是否可以安排Kubernetes集群中的某些豆荚可以访问集群之外的其他某些资源,而不授予整个集群的权限? 例如:一个吊舱从Google存储中访问数据。为了不硬编码一些凭据,我希望它能够通过RBAC/IAM访问它,但另一方面,我不希望集群中的另一个pod能够访问相同的存储。

  • 我使用CarrierWaveDirect将高分辨率图像上传到s3。然后,我使用该图像处理通过Cloudfront URL公开的多个版本。 上传的高分辨率文件需要对匿名用户保持私有,但web应用程序需要访问私有文件才能对其他版本进行处理。 我目前正在通过将所有上传的文件设置为CarrierWave初始值设定项中的private config.fog_public=假 我有一个允许完全管理员访问的we

  • null 是否有一种方法可以跟踪为特定的S3 getObject请求提供访问的策略/角色? 我已经为与认知组相关联的角色运行了IAM策略模拟器,它对有问题的对象给出了拒绝。 我试图正确阻止访问的对象没有为它们设置权限。桶有: 阻止新的公共ACL和上载公共对象(建议):True 删除通过公共ACL授予的公共访问权限(建议):True 阻止新的公共桶策略(推荐):true 如果bucket具有公共策略

  • 我是这方面的新手,读了很多之后,我觉得我不太明白如何在Keycloak中实现授权代码流。我的疑惑: > < li> 在创建了支持此流程的客户端后,如何执行凭据验证?默认情况下,如果我不做任何配置,我会得到一个登录表单。如果我在浏览器中打开这个html,并填写用户和密码字段,当我按下按钮时,它会将我发送到一个类型为.../realm/{ REAL _ NAME }/log in-actions/au

  • 我在ApiGateway中启用了一个方法,该方法具有。当我为IAM用户提供一个AccessKey和SecretKey,并在标题中使用编程访问策略时,这就可以工作了,但是这只是预期结果的一半。 是否有办法进一步扩展此授权,以便只允许具有特定API网关方法附加策略的IAM用户? 我最初的想法是在API网关上有一个资源策略来拒绝所有请求,然后将方法访问策略分配给特定IAM用户以覆盖该请求,但根据策略评估