提供给 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 配置文件 ;)
在为 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 配置文件 ;)