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

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

授予 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。請注意,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/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": "*" } ] }