授予 EC2 Instance Connect 的IAM許可 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授予 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": "*" } ] }