みなさんこんにちは。
テクニカルグループの山田です。 最近、IAMで権限を管理/設定する機会が多いのですが、その中でも特に設定する機会が多い EC2の権限 を一覧にしてまとめました。
IAMで設定が出来るEC2の権限を全て網羅しております。
EC2のIAM権限
アクション | アクションの内容 |
---|---|
ec2:ActivateLicense | ライセンスを有効化する |
ec2:AllocateAddress | EIPを取得する |
ec2:AssignPrivateIpAddresses | ENIにSecondary Private IPを追加する |
ec2:AssociateAddress | インスタンス/ENIにEIPを割り当てる |
ec2:AssociateDhcpOptions | VPCにDHCP Option Setを関連付ける |
ec2:AssociateRouteTable | サブネットに対してRouteTableを関連付ける |
ec2:AttachInternetGateway | VPCに対してInternet Gatewayアタッチする |
ec2:AttachNetworkInterface | インスタンスに対してENIをアタッチする |
ec2:AttachVolume | インスタンスに対してEBS Volumeをアタッチする |
ec2:AttachVpnGateway | VPCに対してVPN Gatewayをアタッチする |
ec2:AuthorizeSecurityGroupEgress | Outbound方向のSecurityGroup設定ルールを追加する |
ec2:AuthorizeSecurityGroupIngress | Inbound方向のSecurityGroup設定ルールを追加する |
ec2:BundleInstance | Instance Store-Backed Windows AMIのバンドルをする |
ec2:CancelBundleTask | Instance Store-Backed Windows AMIのバンドルをキャンセルする |
ec2:CancelConversionTask | インスタンスまたはボリュームの変換タスクをキャンセルする |
ec2:CancelExportTask | インスタンスのエクスポートタスクをキャンセルする |
ec2:CancelReservedInstancesListing | リザーブドインスタンスの一覧の詳細を Reserved Instance Marketplace で表示する |
ec2:CancelSpotInstanceRequests | スポットインスタンスのリクエストをキャンセルする |
ec2:ConfirmProductInstance | インスタンスに対してproduct codeが有効か判定する |
ec2:CopyImage | AMIのリージョン間コピーをする |
ec2:CopySnapshot | スナップショットのリージョン間コピーをする |
ec2:CreateCustomerGateway | CustomerGatewayを作成する |
ec2:CreateDhcpOptions | DHCP Optionを作成する |
ec2:CreateImage | インスタンスからAMIを作成する |
ec2:CreateInstanceExportTask | インスタンスをエクスポートする |
ec2:CreateInternetGateway | InternetGatewayを作成する |
ec2:CreateKeyPair | KeyPairを作成する |
ec2:CreateNetworkAcl | NetworkACLを作成する |
ec2:CreateNetworkAclEntry | NetworkACLに対してエントリーを追加する |
ec2:CreateNetworkInterface | ENIを作成する |
ec2:CreatePlacementGroup | PlacementGroupを作成する |
ec2:CreateReservedInstancesListing | 販売するリザーブドインスタンスの一覧を Reserved Instance Marketplace 内に作成する |
ec2:CreateRoute | RouteTable内のルートを作成する |
ec2:CreateRouteTable | RouteTableを作成する |
ec2:CreateSecurityGroup | SecurityGroupを作成する |
ec2:CreateSnapshot | EBSのスナップショットを作成する |
ec2:CreateSpotDatafeedSubscription | スポットインスタンスの使用状況のデータフィードを作成する |
ec2:CreateSubnet | VPCのサブネットを作成する |
ec2:CreateTags | タグを追加/変更する |
ec2:CreateVolume | EBSを作成する |
ec2:CreateVpc | VPCを作成する |
ec2:CreateVpnConnection | VPNConnectionを作成する |
ec2:CreateVpnConnectionRoute | VPNConnectionのStaticRouteを作成する |
ec2:CreateVpnGateway | VPNGatewayを作成する |
ec2:DeactivateLicense | ライセンスを無効化する |
ec2:DeleteCustomerGateway | CustomerGatewayを削除する |
ec2:DeleteDhcpOptions | DHCP Optionを削除する |
ec2:DeleteInternetGateway | Internet Gatewayを削除する |
ec2:DeleteKeyPair | KeyPairを削除する |
ec2:DeleteNetworkAcl | NetworkACLを削除する |
ec2:DeleteNetworkAclEntry | NetworkACLのエントリーを削除する |
ec2:DeleteNetworkInterface | ENIを削除する |
ec2:DeletePlacementGroup | PlacementGroupを削除する |
ec2:DeleteRoute | RouteTable内のルートを削除する |
ec2:DeleteRouteTable | RouteTableを削除する |
ec2:DeleteSecurityGroup | SecurityGroupを削除する |
ec2:DeleteSnapshot | スナップショットを削除する |
ec2:DeleteSpotDatafeedSubscription | スポットインスタンスのデータフィードの削除する |
ec2:DeleteSubnet | サブネットを削除する |
ec2:DeleteTags | タグを削除する |
ec2:DeleteVolume | EBSを削除する |
ec2:DeleteVpc | VPCを削除する |
ec2:DeleteVpnConnection | VPNConnectionを削除する |
ec2:DeleteVpnConnectionRoute | VPNConnectionのスタティックルートを削除する |
ec2:DeleteVpnGateway | VPNGatewayを削除する |
ec2:DeregisterImage | AMIの登録を解除する |
ec2:DescribeAccountAttributes | AWSアカウントの指定した属性を表示する |
ec2:DescribeAddresses | EIPを一覧で表示する |
ec2:DescribeAvailabilityZones | 利用しているアカウントで使用できるAZを一覧で表示する |
ec2:DescribeBundleTasks | バンドルタスクを一覧で表示する |
ec2:DescribeConversionTasks | インスタンスまたはボリュームの変換タスク進行状況を表示する |
ec2:DescribeCustomerGateways | CustomerGatewayを一覧で表示する |
ec2:DescribeDhcpOptions | DHCP Optionを一覧で表示する |
ec2:DescribeExportTasks | インスタンスのエクスポートタスクの進行状況を表示する |
ec2:DescribeImageAttribute | AMIの指定した属性を表示する |
ec2:DescribeImages | AMIを一覧で表示する |
ec2:DescribeInstanceAttribute | インスタンスの指定した属性を表示する |
ec2:DescribeInstanceStatus | インスタンスのステータスを一覧で表示する |
ec2:DescribeInstances | インスタンスを一覧で表示する |
ec2:DescribeInternetGateways | InternetGatewayを一覧で表示する |
ec2:DescribeKeyPairs | KeyPairを一覧で表示する |
ec2:DescribeLicenses | ライセンスを一覧で表示する |
ec2:DescribeNetworkAcls | NetworkACLを一覧で表示する |
ec2:DescribeNetworkInterfaceAttribute | ENIの指定した属性を一覧で表示する |
ec2:DescribeNetworkInterfaces | ENIを一覧で表示する |
ec2:DescribePlacementGroups | PlacementGroupを一覧で表示する |
ec2:DescribeRegions | 利用しているアカウントで使用できるリージョンを一覧で表示する |
ec2:DescribeReservedInstances | 購入したリザーブドインスタンスを一覧で表示する |
ec2:DescribeReservedInstancesListings | リザーブドインスタンスの詳細を Reserved Instance Marketplace で表示する |
ec2:DescribeReservedInstancesModifications | リザーブドインスタンスの変更を表示する |
ec2:DescribeReservedInstancesOfferings | 購入できるリザーブドインスタンスの提供タイプを表示する |
ec2:DescribeRouteTables | RouteTableを一覧で表示する |
ec2:DescribeSecurityGroups | SecurityGroupを一覧で表示する |
ec2:DescribeSnapshotAttribute | スナップショットの指定した属性を表示する |
ec2:DescribeSnapshots | スナップショットを一覧で表示する |
ec2:DescribeSpotDatafeedSubscription | スポットインスタンスのデータフィードを表示する |
ec2:DescribeSpotInstanceRequests | スポットインスタンスのリクエストを表示する |
ec2:DescribeSpotPriceHistory | スポット価格の履歴を表示する |
ec2:DescribeSubnets | サブネットの一覧を表示する |
ec2:DescribeTags | タグを一覧で表示する |
ec2:DescribeVolumeAttribute | EBSの指定した属性を表示する |
ec2:DescribeVolumeStatus | EBSのステータスを表示する |
ec2:DescribeVolumes | EBSを一覧で表示する |
ec2:DescribeVpcAttribute | VPCの指定した属性を表示する |
ec2:DescribeVpcs | VPCを一覧で表示する |
ec2:DescribeVpnConnections | VPN Connectionを一覧で表示する |
ec2:DescribeVpnGateways | VPN Gatewayを一覧で表示する |
ec2:DetachInternetGateway | InternetGatewayをVPCからデタッチする |
ec2:DetachNetworkInterface | ENIをインスタンスからデタッチする |
ec2:DetachVolume | EBSをインスタンスからデタッチする |
ec2:DetachVpnGateway | VPN GatewayをVPCからデタッチする |
ec2:DisableVgwRoutePropagation | VGW による VPC のRouteTableへのルートの伝達を無効にする |
ec2:DisassociateAddress | インスタンス/ENIからEIPを外す |
ec2:DisassociateRouteTable | RouteTableに関連付けられているサブネットを外す |
ec2:EnableVgwRoutePropagation | VGW による VPC のRouteTableへのルートの伝達を有効にする |
ec2:EnableVolumeIO | EBSのI/Oを有効化する |
ec2:GetConsoleOutput | インスタンスのコンソール出力を取得する |
ec2:GetPasswordData | Windows Instanceの管理者パスワードを取得する |
ec2:ImportInstance | 指定したディスクイメージのメタデータを使用して、インスタンスをインポートするタスクを作成し、そのインスタンスをEC2へインポートする |
ec2:ImportKeyPair | KeyPairをインポートする |
ec2:ImportVolume | 指定したディスクイメージのメタデータを使用して、ボリュームをインポートする新しいタスクを作成しそのボリュームを EC2 にインポートする |
ec2:ModifyImageAttribute | AMIの指定した属性を変更する |
ec2:ModifyInstanceAttribute | インスタンスの指定した属性を変更する |
ec2:ModifyNetworkInterfaceAttribute | ENIの指定した属性を変更する |
ec2:ModifyReservedInstances | リザーブドインスタンスの指定した属性を変更する |
ec2:ModifySnapshotAttribute | スナップショットの指定した属性を変更する |
ec2:ModifyVolumeAttribute | EBSの指定した属性を変更する |
ec2:ModifyVpcAttribute | VPCの指定した属性を変更する |
ec2:MonitorInstances | インスタンスを監視する |
ec2:PurchaseReservedInstancesOffering | リザーブドインスタンスを購入する |
ec2:RebootInstances | インスタンスをリブートする |
ec2:RegisterImage | スナップショットからAMIを登録/作成する |
ec2:ReleaseAddress | アカウントに割り当てられているEIPを開放する |
ec2:ReplaceNetworkAclAssociation | NetworkACLを関連付けるNetworkACLを変更する |
ec2:ReplaceNetworkAclEntry | NetworkACLの既存のルールを置換する |
ec2:ReplaceRoute | RouteTableの既存のルートを置き換える |
ec2:ReplaceRouteTableAssociation | Subnetに関連付けられているRouteTableを変更する。 MainRouteTableを変更 |
ec2:ReportInstanceStatus | 実行中のインスタンスのステータスに関するフィードバックを送信する |
ec2:RequestSpotInstances | スポットインスタンスのリクエストを作成する |
ec2:ResetImageAttribute | AMIの起動許可を取り消す |
ec2:ResetInstanceAttribute | インスタンスの属性値の情報をリセットする |
ec2:ResetNetworkInterfaceAttribute | ENIの属性をリセットする |
ec2:ResetSnapshotAttribute | スナップショットのアクセス許可設定をリセットする |
ec2:RevokeSecurityGroupEgress | Outbound方向のSecurityGroup設定ルールを削除する |
ec2:RevokeSecurityGroupIngress | Inbound方向のSecurityGroup設定ルールを削除する |
ec2:RunInstances | インスタンスを作成する |
ec2:StartInstances | インスタンスを起動する |
ec2:StopInstances | インスタンスを停止する |
ec2:TerminateInstances | インスタンスを削除する |
ec2:UnassignPrivateIpAddresses | ENIからPrivate IP Addressを外す |
ec2:UnmonitorInstances | インスタンスの監視を無効にする |
まとめ
EC2だけでこんなに細かく権限があるんですね。
ちなみに、想定通りの権限が付与されているかどうか確認するには、コマンドラインツールやSDKにある
DryRun オプションを利用すれば実際にサービスを動かすことなく実行の可否が一発で分かります。
DryRun オプションについては下記リンクに詳しい記載がありますので、ご参考に。