salt-cloud の IAM ユーザーを作成する場合、最小権限の原則に従ってジョブを実行できるように、ユーザーに付与する最小限の権限は何ですか?
マップ ファイルを使用して EC2 インスタンスを作成する必要があるだけです。しかし、ソルト クラウドが実行する実際の操作を確認するのに十分な知識がありません。
定義済みのポリシーがあれば、それを使用したいと思います。
salt-cloud の IAM ユーザーを作成する場合、最小権限の原則に従ってジョブを実行できるように、ユーザーに付与する最小限の権限は何ですか?
マップ ファイルを使用して EC2 インスタンスを作成する必要があるだけです。しかし、ソルト クラウドが実行する実際の操作を確認するのに十分な知識がありません。
定義済みのポリシーがあれば、それを使用したいと思います。
私はこれに興味があったので、salt-cloud ソース (salt/cloud/clouds/ec2.py) を調べました。興味深いことに、彼らは boto ライブラリを使用して AWS を呼び出すのではなく、リクエスト自体を切り分けることを選択しており、その方法により、アクセス許可が必要なアクションを簡単に抽出できます。
このワンライナーはすべてのアクションを引き出します
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 プロファイルを作成することもできます ;)