本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 EC2 Instance Connect 授予 IAM 許可
若要使用 EC2 Instance Connect 連線至執行個體,請務必建立 IAM 政策來授予使用者執行下列動作和條件的許可:
-
ec2-instance-connect:SendSSHPublicKey
動作 – 准許將公有金鑰推送至執行個體。 -
ec2:osuser
條件 – 指定可將公有金鑰推送至執行個體的 OS 使用者名稱。使用針對啟動執行個體的 AMI 的預設使用者名稱。AL2023 和 Amazon Linux 2 的預設使用者名稱為ec2-user
,而 Ubuntu 的名稱為ubuntu
。 -
ec2:DescribeInstances
動作 – 使用 EC2 主控台時必需,因為包裝函數會呼叫此動作。使用者可能已有從另一個政策呼叫此動作的許可。 -
ec2:DescribeVpcs
動作 – 連線至 IPv6 地址時為必要。
考慮限制對特定 EC2 執行個體的存取。否則,具有 ec2-instance-connect:SendSSHPublicKey
動作許可的所有 IAM 主體都可以連線到所有 EC2 執行個體。您可以指定資源 ARN 或將資源標籤做為條件索引鍵使用,來限制存取。
如需詳細資訊,請參閱適用於 Amazon EC2 Instance Connect 的動作、資源和條件金鑰。
如需有關建立和編輯 IAM 政策的資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策。
允許使用者連線至特定執行個體
下列 IAM 政策會授予連線至特定執行個體的許可,由其資源 ARN 識別。
在下列 IAM 政策範例中,指定了下列動作和條件:
-
此
ec2-instance-connect:SendSSHPublicKey
動作准許使用者連線至兩個執行個體,由資源 ARN 指定。若要准許使用者連線至所有 EC2 執行個體,請以*
萬用字元取代資源 ARN。 -
只有在連線時指定
ami-username
,ec2:osuser
條件才會准許連線至執行個體。 -
指定
ec2:DescribeInstances
動作,准許使用主控台的使用者連線至執行個體。如果使用者僅使用 SSH 用戶端連線至執行個體,則可以省略ec2:DescribeInstances
。注意,ec2:Describe*
API 動作不支援資源層級許可。因此,在Resource
元素中必須包含*
萬用字元。 -
指定
ec2:DescribeVpcs
動作,准許使用主控台透過 IPv6 地址連線至執行個體。如果您的使用者只會使用公有 IPv4 地址,可以省略ec2:DescribeVpcs
。注意,ec2:Describe*
API 動作不支援資源層級許可。因此,在Resource
元素中必須包含*
萬用字元。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": [ "arn:aws:ec2:
region
:account-id
:instance/i-1234567890abcdef0
", "arn:aws:ec2:region
:account-id
:instance/i-0598c7d356eba48d7
" ], "Condition": { "StringEquals": { "ec2:osuser": "ami-username
" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeVpcs" ], "Resource": "*" } ] }
允許使用者連線至具有特定標籤的執行個體
屬性型存取控制 (ABAC) 是一種授權策略,可根據可連接到使用者 AWS 和資源的標籤來定義許可。您可使用資源標籤來控制對執行個體的存取。如需使用標籤控制對 AWS 資源的存取的詳細資訊,請參閱《IAM 使用者指南》中的控制對 AWS 資源的存取。
在下列 IAM 政策範例中,ec2-instance-connect:SendSSHPublicKey
動作准許使用者連線至任何執行個體 (由資源 ARN 中的 *
萬用字元表示),條件是執行個體的資源標記中 key=tag-key
和 value=tag-value
。
指定 ec2:DescribeInstances
動作,准許使用主控台的使用者連線至執行個體。如果使用者僅使用 SSH 用戶端連線至執行個體,則可以省略 ec2:DescribeInstances
。注意,ec2:Describe*
API 動作不支援資源層級許可。因此,在 Resource
元素中必須包含 *
萬用字元。
指定 ec2:DescribeVpcs
動作,准許使用主控台透過 IPv6 地址連線至執行個體。如果您的使用者只會使用公有 IPv4 地址,可以省略 ec2:DescribeVpcs
。注意,ec2:Describe*
API 動作不支援資源層級許可。因此,在 Resource
元素中必須包含 *
萬用字元。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "arn:aws:ec2:
region
:account-id
:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/tag-key
": "tag-value
" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeVpcs" ], "Resource": "*" } ] }