跳至內容

如何將 IAM 身分的存取限制在特定的 Amazon EC2 資源?

2 分的閱讀內容
0

我想將 AWS Identity and Access Management (IAM) 身分的存取限制在特定的 Amazon Elastic Compute Cloud (Amazon EC2) 資源。

簡短說明

Amazon EC2 對資源層級權限或條件提供部分支援。您可以使用資源層級權限來控制 IAM 身分如何存取特定的 Amazon EC2 資源。

您也可以使用 ABAC (以標籤為基礎的授權) 來控制 AWS 資源的存取。如需詳細資訊,請參閱 IAM 教學課程: 根據標籤定義存取 AWS 資源的權限

解決方法

請使用下列範例 IAM 政策,根據您的使用案例限制對 Amazon EC2 執行個體的存取。然後,將政策附加至您要限制存取的 IAM 身分。

將存取限制為僅能啟動、停止或重新啟動執行個體

下列範例政策將 IAM 身分的存取限制為只能啟動、停止或重新啟動 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。

若要依 AWS 區域限制其他 Amazon EC2 資源,請確認這些動作支援資源層級權限與條件。

依標籤限制啟動 EC2 執行個體

下列範例政策使用 Owner 標籤索引鍵,將 IAM 身分的存取限制為只能啟動 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 身分的存取限制為只能啟動 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 執行個體類型命名慣例

相關資訊

如何建立 IAM 政策,以透過標籤控制對 Amazon EC2 資源的存取?

如何使用 IAM 政策標籤來限制可建立與存取 EC2 執行個體或 EBS 磁碟區的方式?

身分型 Amazon EC2 政策

AWS 官方已更新 1 年前