本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予許可以使用 EC2 Instance Connect Endpoint
依預設,IAM 實體沒有建立、描述或修改 EC2 Instance Connect 端點的許可。IAM 管理員可以建立 IAM 政策,授予在所需資源上執行特定動作所需的權限。
如需有關建立和編輯 IAM 政策的資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策。
下列範例政策示範您控制使用者對 EC2 Instance Connect Endpoints 所需的許可。
範例
建立、描述和刪除 EC2 Instance Connect Endpoint 所需的許可
若要建立 EC2 Instance Connect Endpoint,使用者需要下列動作的許可:
-
ec2:CreateInstanceConnectEndpoint
-
ec2:CreateNetworkInterface
-
ec2:CreateTags
-
iam:CreateServiceLinkedRole
若要描述和刪除 EC2 Instance Connect Endpoint,使用者需要下列動作的許可:
-
ec2:DescribeInstanceConnectEndpoints
-
ec2:DeleteInstanceConnectEndpoint
您可以建立一個政策,以准許在所有子網路中建立、描述和刪除 EC2 Instance Connect Endpoint。或者,僅將子網路 ARN 指定為允許的 Resource
或使用 ec2:SubnetID
條件索引鍵,來限制指定子網路的動作。您也可以使用 aws:ResourceTag
條件索引鍵來明確允許或拒絕具有特定標籤的端點建立。如需詳細資訊,請參閱「 IAM 使用者指南」中的 IAM 中的政策和許可。
IAM 政策範例
在下列 IAM 政策範例中,Resource
區段准許在所有子網路中建立和刪除端點,以星號 (*
) 指定。ec2:Describe*
API 動作不支援資源層級許可。因此,在 Resource
元素中必須包含 *
萬用字元。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "GrantAllActionsInAllSubnets", "Action": [ "ec2:CreateInstanceConnectEndpoint", "ec2:DeleteInstanceConnectEndpoint", "ec2:CreateNetworkInterface", "ec2:CreateTags", "iam:CreateServiceLinkedRole" ], "Effect": "Allow", "Resource": "arn:aws:ec2:
region
:account-id
:subnet/*" }, { "Action": [ "ec2:CreateNetworkInterface" ], "Effect": "Allow", "Resource": "arn:aws:ec2:::security-group/*" }, { "Sid": "DescribeInstanceConnectEndpoints", "Action": [ "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }
使用 EC2 Instance Connect Endpoint 連線到執行個體所需的許可
ec2-instance-connect:OpenTunnel
動作准許建立執行個體的 TCP 連線,以便透過 EC2 Instance Connect Endpoint 進行連線。您可以指定要使用的 EC2 Instance Connect Endpoint。或者,帶有星號 (*
) 的 Resource
允許使用者使用任何可用的 EC2 Instance Connect Endpoint。您也可以根據是否存在作為條件索引鍵的資源標籤來限制執行個體的存取。
條件
-
ec2-instance-connect:remotePort
– 執行個體上可用來建立 TCP 連線的連接埠。使用此條件索引鍵時,嘗試連線到政策中指定的連接埠以外的任何其他連接埠上的執行個體會導致失敗。 -
ec2-instance-connect:privateIpAddress
– 與您要建立 TCP 連線的執行個體相關聯的目的地私有 IP 位址。您可以指定單一 IP 位址 (例如10.0.0.1/32
) 或透過 CIDR 指定 IP 範圍 (例如10.0.1.0/28
)。使用此條件索引鍵時,嘗試連線至具有不同私有 IP 位址或超出 CIDR 範圍的執行個體會導致失敗。 -
ec2-instance-connect:maxTunnelDuration
– 已建立的 TCP 連線的持續時間上限。單位為秒,持續時間範圍為至少 1 秒至最多 3600 秒 (1 小時)。如果未指定條件,則預設持續時間會設為 3600 秒 (1 小時)。嘗試連線至執行個體的時間超過 IAM 政策中指定的持續時間,或超過預設最大值時,會導致失敗。連線會在指定的持續時間後中斷。如果在 IAM 政策中指定
maxTunnelDuration
,且指定的值少於 3,600 秒 (預設值),則您必須在連線至執行個體時在命令中指定--max-tunnel-duration
。如需有關如何連線至執行個體的資訊,請參閱 使用 EC2 Instance Connect Endpoint 連線至 Amazon EC2 執行個體。
您也可以根據 EC2 Instance Connect Endpoint 上的資源標籤存在情況,授予使用者建立執行個體連線的存取權。如需詳細資訊,請參閱「 IAM 使用者指南」中的 IAM 中的政策和許可。
針對 Linux 執行個體,ec2-instance-connect:SendSSHPublicKey
動作准許將公有金鑰推送至執行個體。ec2:osuser
條件指定可將公有金鑰推送至執行個體的 OS (作業系統) 使用者名稱。使用針對啟動執行個體的 AMI 的預設使用者名稱。如需詳細資訊,請參閱為 EC2 Instance Connect 授予 IAM 許可。
IAM 政策範例
以下 IAM 政策範例允許 IAM 主體僅使用指定的 EC2 Instance Connect Endpoint (由指定的端點 ID eice-123456789abcdef
識別) 連線到執行個體。必須滿足所有條件,連線才會成功建立。
注意
ec2:Describe*
API 動作不支援資源層級許可。因此,在 Resource
元素中必須包含 *
萬用字元。
僅從特定 IP 位址範圍連線的許可
下列 IAM 政策範例允許 IAM 主體連線到執行個體,條件是它們從政策中指定的 IP 位址範圍內的 IP 位址進行連線。如果 IAM 主體從不在 192.0.2.0/24
範圍內的 IP 位址呼叫 OpenTunnel
(此政策中的範例 IP 位址範圍),則回應為 Access Denied
。如需詳細資訊,請參閱「IAM 使用者指南」中的 aws:SourceIp
。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:OpenTunnel", "Resource": "arn:aws:ec2:
region
:account-id
:instance-connect-endpoint/eice-123456789abcdef
", "Condition": { "IpAddress": { "aws:SourceIp": "192.0.2.0/24
" }, "NumericEquals": { "ec2-instance-connect:remotePort": "22
" } } }, { "Sid": "SSHPublicKey", "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*", "Condition": { "StringEquals": { "ec2:osuser": "ami-username
" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Resource": "*" } ] }