在为 salt-cloud 创建 IAM 用户时,赋予它的最低权限是什么,以便它可以按照最小权限原则完成工作?
我只需要使用映射文件创建 EC2 实例:但是我不知道足够的 salt-cloud 来确定它执行的实际操作。
如果存在,我更愿意使用预定义的策略。
在为 salt-cloud 创建 IAM 用户时,赋予它的最低权限是什么,以便它可以按照最小权限原则完成工作?
我只需要使用映射文件创建 EC2 实例:但是我不知道足够的 salt-cloud 来确定它执行的实际操作。
如果存在,我更愿意使用预定义的策略。
我自己对此很好奇,所以查看了盐云源(salt/cloud/clouds/ec2.py)。有趣的是,他们不使用 boto 库来调用 AWS,而是选择自己处理请求,并且他们完成请求的方式使得提取您需要获得权限的操作变得非常容易。
这个oneliner拉出了所有的动作
grep "'Action':" cloud/clouds/ec2.py | awk '{print $4;}' | 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 配置文件;)