gpt4 book ai didi

amazon-web-services - 如何在cloudformation模板中访问当前用户?

转载 作者:行者123 更新时间:2023-12-03 13:42:00 28 4
gpt4 key购买 nike

我想使用 CloudFormation 创建 KMS key 。我希望能够为执行 cloudformation YAML 文件的用户(我将其称为“cloudformation-runner”)提供对他们创建的 key 的管理访问权限。

我可以设置 IAM 策略来为该用户(“cloudformation-runner”)提供对 KMS 管理 API 的访问权限。但是,为了让用户能够更新/删除刚刚创建的 key ,我还需要指定 KeyPolicy这让他们可以做到。为此,如何在 CloudFormation 脚本中获取当前用户名(“cloudformation-runner”)?

这是我的 KMS key 模板的外观,如何将当前用户作为主体?

    MyKey:
Type: AWS::KMS::Key
Properties:
Description: "..."
KeyPolicy:
Version: "2012-10-17"
Id: "MyId"
Statement:
-
Sid: "Allow administration of the key"
Effect: "Allow"
Principal:
AWS:
- # TODO: Get Current User
Action:
- "kms:Create*"
- "kms:Describe*"
- "kms:Enable*"
- "kms:List*"
- "kms:Put*"
- "kms:Update*"
- "kms:Revoke*"
- "kms:Disable*"
- "kms:Get*"
- "kms:Delete*"
- "kms:ScheduleKeyDeletion"
- "kms:CancelKeyDeletion"
Resource: "*"

我可以为 IAM 用户手动硬编码 ARN。但是,这使得模板的可移植性较差 - 因为人们需要手动更新此文件中的用户名。

最佳答案

一旦当前用户是运行 CloudFormation 模板的 IAM 角色而不是 IAM 用户,您就无法访问该用户。但您可以将用户名作为参数传递。

我想给您举一个我认为适合您的情况的例子:

  1. “cloudformation-runner”可以是角色而不是用户。此角色可以具有授予创建 KMS key 权限的策略。
  2. CloudFormation 模板可以接收 IAM 用户名和 key 名称作为参数。您可以使用 CF 函数从 IAM 用户名创建用户 ARN。
  3. 除了创建 KMS key 之外,这些参数还可用于创建 IAM 策略并附加给用户,为新创建的 key 提供读/写权限。

这样您的 key 创建过程就可以创建 key 并同时授予用户权限。

关于amazon-web-services - 如何在cloudformation模板中访问当前用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52907336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com