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

最終更新日: 2019 年 4 月 15 日

AWS Identity and Access Management (IAM) ユーザーまたはグループのアクセスを特定の Amazon Elastic Compute Cloud (Amazon EC2) リソースまたは Amazon EC2 リソースのグループに制限したいのですが、同じ AWS アカウントの複数のリソースグループに対して実行したいです。どうすればできますか?

解決方法

最も重要な 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 ユーザーまたはグループのアクセスを、次のタグキーまたは所有者の値を持つ EC2 インスタンスの開始/停止/再起動のみに制限します: 米国東部 (バージニア北部) [us-east-1] リージョンの Bob。

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

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