Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
IAM ID へのアクセスを特定の Amazon EC2 リソースに制限する方法を教えてください。
AWS Identity and Access Management (IAM) の ID のアクセスを特定の Amazon Elastic Compute Cloud (Amazon EC2) リソースに制限したいと考えています。
簡単な説明
Amazon EC2 は、リソースレベルのアクセス許可または条件を部分的にサポートしています。リソースレベルのアクセス許可を使用して、IAM ID が特定の Amazon EC2 リソースにアクセスする方法を制御できます。
ABAC (タグに基づく認証) を使用して AWS リソースへのアクセスを制御することもできます。詳細については、「IAM チュートリアル: タグに基づいて AWS リソースにアクセスする権限を定義する」を参照してください。
解決策
次の IAM ポリシー例を使用して、ユースケースに合わせて Amazon EC2 インスタンスへのアクセスを制限してください。次に、アクセスを制限する IAM ID にポリシーをアタッチします。
アクセスをインスタンスの起動、停止、再起動のみに制限する
以下のポリシー例では、IAM ID へのアクセスを EC2 インスタンスの起動、停止、または再起動のみに制限しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/Owner": "Bob" } } } ] }
注: Owner をタグキーに、Bob をタグ値に、AccountId を AWS アカウント ID に置き換えます。
他の Amazon EC2 リソースを AWS リージョンごとに制限するには、アクションがリソースレベルのアクセ許可と条件をサポートしていることを確認してください。
EC2 インスタンスの起動をタグで制限する
以下のポリシー例では、Owner タグキーを使用して IAM ID へのアクセスを EC2 インスタンスのみ起動するように制限しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringNotLike": { "aws:RequestTag/Owner": "*" } } }, { "Sid": "AllowRunInstances", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid": "AllowToDescribeAll", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": "*" }, { "Sid": "AllowCreateTagsOnLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:AccountId:*/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances" ] } } } ] }
注: Owner をタグキーに、AccountId をアカウント ID に置き換えます。
EC2 インスタンスの起動をインスタンスタイプで制限する
次のポリシー例では、IAM ID へのアクセスを t3.* インスタンスタイプ で EC2 インスタンスのみ起動するように制限しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringNotLike": { "ec2:InstanceType": "t3.*" } } }, { "Sid": "AllowRunInstances", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid": "AllowToDescribeAll", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": "*" }, { "Sid": "AllowCreateTagsOnLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:AccountId:*/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances" ] } } } ] }
注: インスタンスタイプ t3.* を使用するインスタンスタイプ (t3.nano など) に置き換えます。また、AccountId は使用するアカウント ID に置き換えます。
詳細については、「Amazon EC2 インスタンスタイプの命名規則」を参照してください。
関連情報
タグを使用して Amazon EC2 リソースへのアクセスを制御する IAM ポリシーを作成する方法を教えてください
IAM ポリシータグを使用して EC2 インスタンスまたは EBS ボリュームを作成し、アクセス方法を制限する方法を教えてください
- 言語
- 日本語
