IAM アイデンティティのアクセスを特定の Amazon EC2 リソースに制限することはできますか?

最終更新日: 2022 年 10 月 20 日

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

解決方法

Amazon EC2 は、リソースレベルのアクセス権限または条件を部分的にサポートしています。つまり、特定の Amazon EC2 アクションでは、満たす必要のある条件、またはユーザーが使用できる特定のリソースに基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できます。

IAM ユーザーまたはユーザーグループの Amazon EC2 リソースへのアクセスを AWS リージョン以外の基準で分離することは、ほとんどのユースケースに適していません。同じアカウントにあるリソースをリージョンまたは条件別に分離する必要がある場合は、まずリソースレベルの許可と条件をサポートする Amazon EC2 アクションのリストをチェックして、ユースケースがこのソリューションをサポートすることを確認してください。

以下は、IAM ID (ユーザー/グループ/ロール) のアクセスをバージニア北部 (us-east-1) リージョンの EC2 インスタンスの起動/停止/再起動のみに制限するために使用できるポリシーの例です。インスタンスには、「Owner」のタグキーと「Bob」のタグ値が必要です。「ec2:Describe*」がポリシーに追加され、AWS マネジメント EC2 コンソール内の 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:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/Owner": "Bob"
        }
      }
    }
  ]
}

注意:「Owner」、「Bob」、およびリソース ARN は、お使いの環境のパラメータに置き換えてください。

ポリシーを作成したら、IAM ユーザー、グループ、またはロールのいずれかにアタッチできます

タグ付けのユースケースとベストプラクティスについては、「ベストプラクティス」を参照してください。