本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 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執行個體。您可以透過指定資源ARNs或使用資源標籤作為條件索引鍵 來限制存取。
如需詳細資訊,請參閱 Amazon EC2 Instance Connect 的動作、資源和條件金鑰。
如需建立IAM政策的相關資訊,請參閱 IAM 使用者指南 中的建立IAM政策。
允許使用者連線至特定執行個體
下列IAM政策會授予許可,以連線至其資源 所識別的特定執行個體ARNs。
在下列範例IAM政策中,會指定下列動作和條件:
-
ec2-instance-connect:SendSSHPublicKey
動作會授予使用者連線至資源 所指定的兩個執行個體的許可ARNs。若要授予使用者連線至所有EC2執行個體的許可,請使用*
萬ARNs用字元取代資源。 -
ec2:osuser
只有在 時,條件才會授予連線至執行個體的許可ami-username
會在連線時指定 。 -
指定
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": "*" } ] }