IAM ユーザーのアクセスを特定の Amazon EC2 リソースに制限できますか?

最終更新日: 2019 年 11 月 13 日

AWS Identity and Access Management (IAM) ユーザーまたはグループのアクセスを特定の 1 つの Amazon Elastic Compute Cloud (Amazon EC2) リソースまたは同じ AWS アカウントの複数のリソースグループの Amazon EC2 リソースのグループに制限したいと思います。どうしたらよいですか?

解決方法

最も重要な Amazon EC2 アクションは、リソースレベルのアクセス許可または条件をサポートしていません。AWS リージョン以外の条件で IAM ユーザーまたは Amazon EC2 リソースへのユーザーのアクセスグループを切り離すことは、ほとんどのユースケースには適しません。

代わりに、AWS Organizations を介して複数の異なる AWS アカウントをリンクすることを検討してください。次に、IAM ユーザーグループを所有しているアカウントに切り離します。

リージョンまたは同じアカウントの条件によってリソースを切り離す必要がある場合は、まずリソースレベルのアクセス許可をサポートする EC2 アクションのリストとそれらのサポート条件を確認して、ユースケースがこのソリューションをサポートすることを確認してください。

次に、IAM コンソールを開き、次のような IAM ポリシーを作成します。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ec2:Describe*",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:StartInstances",
            "ec2:StopInstances",
            "ec2:RebootInstances"
         ],
         "Resource":[
            "arn:aws:ec2:us-east-1:111122223333:instance/*"
         ],
         "Condition":{
            "StringEquals":{
               "ec2:ResourceTag/Owner":"Bob"
            }
         }
      }
   ]
}

このポリシー例では、IAM ユーザーまたはグループのアクセスを、米国東部 (バージニア北部) [us-east-1] リージョンで Bob のタグキーまたは所有者の値を持つ EC2 インスタンスの開始/停止/再起動のみに制限します。

注意: 所有者 Bob と AWS リージョン をご使用の環境のパラメータに置き換えてください。

最後に、各グループに異なるリージョンを使用して、IAM ユーザーの各グループに同様のポリシーを作成します。