提供给 salt-cloud 用户的 AWS IAM 策略

AWS IAM Policy to give to salt-cloud user

在为 salt-cloud 创建 IAM 用户时,赋予它的最低 权限是什么,以便它可以按照 principle of least privilege 执行其工作?

我只需要使用映射文件创建 EC2 实例:但是我对 salt-cloud 的了解还不够多,无法确定它执行的实际操作。

如果存在预定义策略,我更愿意使用它。

我自己对此很好奇,所以查看了 salt-cloud 源代码 (salt/cloud/clouds/ec2.py)。有趣的是,他们不使用 boto 库来调用 AWS,而是选择自己处理请求,他们完成请求的方式使得提取您需要获得权限的操作变得非常容易。

这个单行拉出所有动作

grep "'Action':" cloud/clouds/ec2.py | awk '{print ;}' | sed "s/[},']//g" | sort | uniq

如您所见,它是所有可用 Ec2 权限的一个相当大的子集。

AllocateAddress AssociateAddress AttachVolume CancelSpotInstanceRequests CopySnapshot CreateKeyPair CreateSnapshot CreateTags CreateVolume DeleteKeyPair DeleteSnapshot DeleteTags DeleteVolume DescribeAvailabilityZones DescribeImages DescribeInstanceAttribute DescribeInstanceTypes DescribeInstances DescribeKeyPairs DescribeRegions DescribeSnapshots DescribeSpotInstanceRequests DescribeSubnets DescribeTags DescribeVolumes DescribeZones DetachVolume GetConsoleOutput GetPasswordData ImportKeyPair ModifyInstanceAttribute ModifyNetworkInterfaceAttribute RebootInstance RebootInstances RegisterImage RequestSpotInstances RunInstances StartInstance StartInstances StopInstances TerminateInstances

当然,您可以使用 salt 为您创建一个 IAM 配置文件 ;)