gpt4 book ai didi

aws-cloudformation - 确定 AWS CDK 所需的权限

转载 作者:行者123 更新时间:2023-12-03 17:20:14 25 4
gpt4 key购买 nike

我正在使用 AWS CDK,每次创建新资源(CodePipeline、VPC 等)时,我都会陷入相同的循环中...

  • 尝试部署
  • “您无权执行 foo:CreateBar”
  • 更新 IAM 权限
  • 尝试部署
  • “您无权 baz:CreateZzz”
  • 更新 IAM 权限

...一遍又一遍。然后当我 cdk destroy 时也是一样,但是对于“foo:DeleteFoo”

是否有更有效的方法来确定策略执行特定 CDK 操作所需的权限?也许我可以引用文档中的某个地方?

谢谢

最佳答案

这是一个脚本,它将执行您传递给它的任何内容,但也会捕获您传递给它的内容与完成执行之间的时间戳,并打印由配置的默认 aws 用户使用 cloudtrail 捕获的所有 AWS API 事件。操作可能需要 20 分钟才能显示在 cloudtrail 中,但脚本会每分钟检查一次,直到获得该时间范围内的结果。如果在该时间范围内没有进行 AWS api 调用,则不会返回任何结果。这是一个简单的脚本,没有最大超时或任何其他内容。

#!/bin/bash -x

user_name=`aws sts get-caller-identity | jq -r '.Arn' | sed -e 's/user\// /g' | awk '{print $2}'`
sleep 5 # Sleep to avoid getting the sts call in our time range

start_time=`date`
sleep 1 # Sleep to avoid millisecond rounding issues

eval $@

sleep 1 # Sleep to avoid millisecond rounding issues
end_time=`date`

actions=""
while [ -z "$actions" ]; do
sleep 60
echo "Checking for events from $start_time to $end_time..."
actions=`aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=${user_name} --start-time "${start_time}" --end-time "${end_time}" | jq -r '.Events[].CloudTrailEvent' | jq -s | jq -r '.[] | "\(.eventSource) \(.eventName)"' | sed -e 's/.amazonaws.com /:/g' | sed -e 's/[0-9]//g' | sort | uniq`
done

echo "AWS Actions Used:"
echo "$actions"

我将其称为 get-aws-actions.sh,它需要安装 aws cli 以及 jq。对于 cdk 我会这样使用它

./get-aws-actions.sh "cdk deploy && cdk destroy"

我将我的管理员级别凭据配置为默认配置文件,这样我就知道部署不会因为权限问题而失败,然后我使用此脚本返回的结果向更具体的部署用户/角色长期授予权限术语的使用。您可能遇到的问题是,第一次您可能只看到一堆 :Create* 或 :Add* 操作,但实际上您需要为您看到的操作添加所有生命周期操作。因此,如果您看到 dynamodb:CreateTable,您需要确保还添加了 UpdateTable 和 DeleteTable。如果您看到 s3:PutBucketPolicy,您还需要 s3:DeleteBucketPolicy。

说实话,任何不处理允许访问数据的 API 调用的服务,我都会执行 :*。 ECS 就是一个例子。我无法使用 ECS API 调用来调用 API 对容器执行任何 CloudFormation 管理服务不需要执行的操作。因此,对于该服务,如果我知道我正在做容器,我只需将 ecs:* on * 授予我的部署者角色。像 s3、lambda、sqs、sns 这样的服务,通过 API 进行数据访问和资源创建访问,我需要更加谨慎地授予权限。我的部署者角色不应该有权读取所有存储桶中的所有数据或执行函数,但它确实需要创建存储桶和函数。

关于aws-cloudformation - 确定 AWS CDK 所需的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60898197/

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