本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 IAM Instance Connect 的 EC2 許可
若要使用 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 執行個體。您可以透過指定資源 ARNs 或使用資源標籤作為條件索引鍵來限制存取。
如需詳細資訊,請參閱 Amazon EC2 Instance Connect 的動作、資源和條件金鑰。
如需建立 IAM 政策的相關資訊,請參閱 IAM 使用者指南中的建立 Word 政策。 IAM
允許使用者連線至特定執行個體
下列 IAM 政策會授予許可,以連線至由其資源 ARNs 識別的特定執行個體。
在下列 IAM 政策範例中,會指定下列動作和條件:
-
此
ec2-instance-connect:SendSSHPublicKey
動作會授予使用者連線至資源 ARNs 所指定的兩個執行個體的許可。若要授予使用者連線至所有 EC2 執行個體的許可,請將資源 ARNs 取代為*
萬用字元。 -
ec2:osuser
只有在 時,條件才會授予連線至執行個體的許可ami-username
會在連線時指定 。 -
指定
ec2:DescribeInstances
動作,准許使用主控台的使用者連線至執行個體。如果您的使用者只會使用 SSH 用戶端連線到執行個體,您可以省略ec2:DescribeInstances
。請注意,APIec2:Describe*
動作不支援資源層級許可。因此,在Resource
元素中必須包含*
萬用字元。 -
指定
ec2:DescribeVpcs
動作是為了將許可授予使用主控台以使用 IPv6 地址連線至執行個體的使用者。如果您的使用者只會使用公有 IPv4 地址,您可以省略ec2:DescribeVpcs
。請注意,APIec2:Describe*
動作不支援資源層級許可。因此,在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
。請注意,API ec2:Describe*
動作不支援資源層級許可。因此,在 Resource
元素中必須包含 *
萬用字元。
指定 ec2:DescribeVpcs
動作是為了將許可授予使用主控台以使用 IPv6 地址連線至執行個體的使用者。如果您的使用者只會使用公有 IPv4 地址,您可以省略 ec2:DescribeVpcs
。請注意,API ec2:Describe*
動作不支援資源層級許可。因此,在 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": "*" } ] }