Onyekachi が今から説明するのは
タグ付けされた AMI のみから
EC2 インスタンスを起動できるようにアクセスを制限する方法です。

Onyekachi_CPT1018

タグ付けされた Amazon Machine Image (AMI) のみから Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動できるようにアクセスを制限したいです。AMI タグを使用して EC2 インスタンスを起動するためのアクセスを制限する方法を教えてください。

タグ付けされた AMI を使用して EC2 インスタンスを起動するユーザーのアクセスを制限するには、既存のインスタンスから AMI を作成するか、既存の AMI を使用して、その AMI にタグを追加します。そして、タグ付けされた AMI を使用するインスタンスのみを起動するようにユーザーのアクセス許可を制限する、タグ条件付きのカスタム IAM ポリシーを作成します。

この IAM ポリシーの例では、3 つのステートメント ID (Sid) があります。

  • Sid ReadOnlyAccess では、ユーザーは Describe* を使用して、アカウント内の EC2 リソースを表示できます。これは Describe で始まるすべての EC2 アクションが含まれます。Sid ReadOnlyAccess により、ユーザーは EC2 インスタンスのコンソール出力とスクリーンショットを取得することもできます。詳細については、GetConsoleOutput および GetConsoleScreenshot を参照してください。CloudWatch の DescribeAlarms および GetMetricStatistics のアクセス許可では、EC2 インスタンスの基本的なヘルスに関する情報を Amazon EC2 コンソールに表示できます。EC2 インスタンスを起動すると、ListInstanceProfiles の IAM のアクセス許可により、既存のインスタンスプロファイルが、[インスタンスの詳細の設定] ページにある IAM ロールのリストに表示されます。ただし、ListInstanceProfiles API では、ユーザーは IAM ロールを EC2 インスタンスにアタッチすることはできません。
  • Sid ActionsRequiredtoRunInstancesInVPC では、リソースごとに ARN を指定することにより、リソースレベルの権限を用いて us-east-1 のインスタンス、キーペア、セキュリティグループ、ボリューム、ネットワークインターフェイス、またはサブネットを使用して、RunInstances API を実行する権限をユーザーに付与します。
  • Sid LaunchingEC2withAMIsAndTags では、環境タグが "Prod" に設定され、インスタンスが us-east-1 にある場合に、ユーザーは AMI を使用して EC2 インスタンスを起動できます。リソースレベルの権限は、us-east-1 にある AMI の ARN に設定されており、条件は EC2:ResourceTag/Environment タグキーとキー値 "Prod" の値と一致します。

このポリシーでは、ユーザーは EC2 インスタンスを起動するときにロールを一覧表示することはできますが、iam:PassRole 権限を持っていない限り、ロールがアタッチされたインスタンスを起動することはできません。このポリシーでは、ユーザーが新しいセキュリティグループを作成することはできません。ユーザーは、EC2:CreateSecurityGroup 権限を持っていない限り、既存のセキュリティグループを選択して EC2 インスタンスを起動する必要があります。EC2:CreateSecurityGroup はセキュリティグループのみを作成できるアクセスを許可します。このアクションはいずれのルールも追加または変更しません。インバウンドルールを追加するには、ユーザーにインバウンドのEC2:AuthorizeSecurityGroupIngress API アクションを使用する権限とアウトバウンドのEC2:AuthorizeSecurityGroupEgress API アクションを使用する権限が必要です。

次の IAM ポリシーでは、RunInstances のアクションに必要なリソースに対し、リソースレベルのアクセス許可を使用しています。RunInstances に必要なリソースの詳細については、RunInstances に関するリソースレベルのアクセス許可を参照してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:GetConsole*",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:GetMetricStatistics",
                "iam:ListInstanceProfiles"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ActionsRequiredtoRunInstancesInVPC",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:us-east-1:AccountId:instance/*",
                "arn:aws:ec2:us-east-1:AccountId:key-pair/*",
                "arn:aws:ec2:us-east-1:AccountId:security-group/*",
                "arn:aws:ec2:us-east-1:AccountId:volume/*",
                "arn:aws:ec2:us-east-1:AccountId:network-interface/*",
                "arn:aws:ec2:us-east-1:AccountId:subnet/*"
            ]
        },
        {
            "Sid": "LaunchingEC2withAMIsAndTags",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Environment": "Prod"
                }
            }
        }
    ]
}

このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください

公開日: 2018 年 05 月 09 日