透過 VPC AWS 端點連線至付款密碼編譯 - AWS 支付密碼學

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

透過 VPC AWS 端點連線至付款密碼編譯

您可以透過虛擬私有雲端 (VPC) 中的私有介面端點直接連線到 AWS 付款密碼編譯。使用接口 VPC 端點時,VPC 和 AWS 付款密碼之間的通信完全在網絡中進行。 AWS

AWS 付款加密技術支援由此提供支援的 Amazon Virtual Private Cloud 端 (Amazon VPC) 端點。AWS PrivateLink每個 VPC 端點皆會由一個或多個具私有 IP 地址彈性網路界面 (ENI) 來表示,而該界面位於 VPC 子網路中。

介面 VPC 端點可將您的 VPC 直接連接到 AWS 付款密碼學,而無需網際網路閘道、NAT 裝置、VPN 連線或連線。 AWS Direct Connect VPC 中的執行個體不需要公用 IP 位址即可與 AWS 付款密碼進行通訊。

區域

AWS 付款密碼編譯支援所 AWS 區域 有支援AWS 付款密碼編譯的 VPC 端點和 VPC 端點政策。

AWS 付款密碼編譯 VPC 端點的考量

在設定用於 AWS 付款密碼編譯的介面 VPC 端點之前,請先檢閱指南中的介面端點內容和限制主題。AWS PrivateLink

AWS VPC 端點的付款密碼編譯支援包括以下項目。

  • 您可以使用 VPC 端點從 VPC 呼叫所有AWS 付款密碼編譯控制面作業AWS 付款密碼編譯資料通道作業。

  • 您可以建立連線到 AWS 付款密碼編譯區域端點的介面 VPC 端點。

  • AWS 支付密碼由控制平面和數據平面組成。您可以選擇設定一個或兩個子服務,但每個子服務都是個別設定的。

  • 您可以使用 AWS CloudTrail 記錄檔,透過 VPC 端點稽核您對 AWS 付款密碼編譯金鑰的使用情況。如需詳細資訊,請參閱 記錄您的 VPC 端點

建立用於 AWS 付款密碼編譯的 VPC 端點

您可以使用 Amazon VPC 主控台或 Amazon VPC API 建立用於 AWS 付款密碼編譯的 VPC 端點。如需詳細資訊,請參閱《AWS PrivateLink 指南》中的建立介面端點

  • 若要為 AWS 付款密碼編譯建立 VPC 端點,請使用下列服務名稱:

    com.amazonaws.region.payment-cryptography.controlplane
    com.amazonaws.region.payment-cryptography.dataplane

    例如,在美國西部 (奧勒岡) 區域 (us-west-2) 中,服務名稱為:

    com.amazonaws.us-west-2.payment-cryptography.controlplane
    com.amazonaws.us-west-2.payment-cryptography.dataplane

若要更輕鬆使用 VPC 端點,您可以為 VPC 端點啟用私有 DNS 名稱。如果您選取 [啟用 DNS 名稱] 選項,則標準 AWS 付款密碼編譯 DNS 主機名稱會解析為您的 VPC 端點。例如,https://controlplane.payment-cryptography.us-west-2.amazonaws.com 會解析為連接至服務名稱 com.amazonaws.us-west-2.payment-cryptography.controlplane 的 VPC 端點。

此選項可讓您更輕鬆使用 VPC 端點。 AWS SDK 和預設 AWS CLI 使用標準 AWS 付款密碼編譯 DNS 主機名稱,因此您不需要在應用程式和命令中指定 VPC 端點 URL。

如需詳細資訊,請參閱《AWS PrivateLink 指南》中的透過介面端點存取服務

連接到 AWS 付款密碼編譯 VPC 端點

您可以使用 AWS SDK 或透過 VPC 端點連線到 AWS 付款密碼編譯。 AWS CLI AWS Tools for PowerShell若要指定 VPC 端點,請使用它的 DNS 名稱。

例如,此 list-keys 命令會使用 endpoint-url 參數來指定 VPC 端點。若要使用如下的命令,請將範例 VPC 端點 ID 換成您帳戶中的 ID。

$ aws payment-cryptography list-keys --endpoint-url

如果您在建立 VPC 端點時啟用私有主機名稱,則不需要在 CLI 命令或應用程式組態中指定 VPC 端點 URL。標準 AWS 付款密碼編譯 DNS 主機名稱會解析為您的 VPC 端點。 AWS CLI 和 SDK 預設使用此主機名稱,因此您可以開始使用 VPC 端點連接到 AWS 付款密碼編譯區域端點,而無需變更指令碼和應用程式中的任何內容。

若要使用私有主機名稱,您 VPC 的 enableDnsHostnamesenableDnsSupport 屬性必須設為 true。欲設定這些屬性,請使用「ModifyVpc屬性」作業。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的檢視和更新 VPC 的 DNS 屬性

控制對 VPC 端點的存取

若要控制對 VPC 端點以進行 AWS 付款密碼編譯的存取,請將 VPC 端點原則附加至您的 VPC 端點。端點策略確定主體是否可以使用 VPC 端點來呼叫具有特 AWS 定付款密碼編譯資源的 AWS 付款密碼編譯作業。

您可以在建立端點時建立 VPC 端點政策,並且可以隨時變更 VPC 端點政策。使用 VPC 管理主控台,或CreateVpc端點或ModifyVpc端點作業。您也可以使用AWS CloudFormation 範本建立和變更 VPC 端點原則。如需有關如何使用 VPC 管理主控台的說明,請參閱《AWS PrivateLink 指南》中的建立介面端點修改介面端點

關於 VPC 端點政策

若要成功使用 VPC 端點的 AWS 付款密碼編譯要求,主體需要來自兩個來源的權限:

  • 身分識別為基礎的原則必須授與主體權限,才能呼叫資源上的作業 (AWS 付款密碼編譯金鑰或別名)。

  • VPC 端點政策必須授予委託人許可,才能使用端點提出請求。

例如,金鑰原則可能會授與對特定 AWS 付款密碼編譯金鑰呼叫「解密」的主要權限。不過,VPC 端點原則可能不允許該主體使用端Decrypt點呼叫該 AWS 付款密碼編譯金鑰。

或者,VPC 端點策略可能允許主體使用端點呼叫特定 AWS 付款密碼編譯金鑰的使用StopKey情況。但是,如果主體沒有 IAM 政策的這些許可,則請求會失敗。

預設 VPC 端點政策

每個 VPC 端點都有 VPC 端點政策,但您不需要指定政策。如果您未指定政策,則預設端點政策會允許端點上所有資源的所有委託人進行所有操作。

不過,對於 AWS 付款密碼編譯資源,主體也必須具有從 IAM 政策呼叫作業的權限。因此,實際上,預設政策指出,如果委託人具有對資源呼叫操作的許可,則其也可以使用端點來進行呼叫。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Principal": "*", "Resource": "*" } ] }

若要僅允許主體將 VPC 端點用於其允許操作的子集,請建立或更新 VPC 端點政策

建立 VPC 端點政策

VPC 端點政策決定委託人是否具有使用 VPC 端點對資源執行操作的許可。對於 AWS 付款密碼編譯資源,主體還必須具有從 IAM 政策執行操作的權限。

每個 VPC 端點政策陳述式都需要下列元素:

  • 可執行動作的委託人

  • 可執行的動作

  • 可在其中執行動作的資源

政策陳述式不會指定 VPC 端點。相反地,它適用於連接政策的任何 VPC 端點。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的使用 VPC 端點控制對服務的存取

以下是用於 AWS 付款密碼編譯的 VPC 端點原則範例。連接至 VPC 端點時,此原則允許使ExampleUser用 VPC 端點呼叫指定 AWS 付款密碼編譯金鑰上的指定作業。在使用這類政策之前,請先將範例主體和金鑰識別碼取代為帳戶中的有效值。

{ "Statement":[ { "Sid": "AllowDecryptAndView", "Principal": {"AWS": "arn:aws:iam::111122223333:user/ExampleUser"}, "Effect":"Allow", "Action": [ "payment-cryptography:Decrypt", "payment-cryptography:GetKey", "payment-cryptography:ListAliases", "payment-cryptography:ListKeys", "payment-cryptography:GetAlias" ], "Resource": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h" } ] }

AWS CloudTrail 記錄使用 VPC 端點的所有作業。不過,您的 CloudTrail 記錄不包含主體在其他帳戶中要求的作業,或是其他帳戶中 AWS 付款密碼編譯金鑰的作業。

因此,您可能想要建立 VPC 端點策略,以防止外部帳戶中的主體使用 VPC 端點呼叫本機帳戶中任何金鑰的任何 AWS 付款密碼編譯作業。

下列範例使用 aws: PrincipalAccount 全域條件金鑰來拒絕存取所有 AWS 付款密碼編譯金鑰上所有作業的所有主體,除非主體位於本機帳戶中。使用這類政策之前,請將範例帳戶 ID 取代為有效值。

{ "Statement": [ { "Sid": "AccessForASpecificAccount", "Principal": {"AWS": "*"}, "Action": "payment-cryptography:*", "Effect": "Deny", "Resource": "arn:aws:payment-cryptography:*:111122223333:key/*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } } } ] }

檢視 VPC 端點政策

若要檢視端點的 VPC 端點策略,請使用 VPC 管理主控台DescribeVpc端點作業。

下列 AWS CLI 命令會取得具有指定 VPC 端點識別碼之端點的政策。

使用此命令之前,請將範例端點 ID 取代為您帳戶的有效 ID。

$ aws ec2 describe-vpc-endpoints \ --query 'VpcEndpoints[?VpcEndpointId==``].[PolicyDocument]' --output text

在政策陳述式中使用 VPC 端點

當請求來自 VPC 或使用 VPC 端點時,您可以控制對 AWS 付款密碼編譯資源和操作的存取。若要這麼做,請使用其中一個 IAM 政策

  • 使用 aws:sourceVpce 條件索引鍵,以根據 VPC 端點來授予或限制存取。

  • 使用 aws:sourceVpc 條件索引鍵,以根據託管私有端點的 VPC 來授予或限制存取。

注意

當請求來自 Amazon VPC 端點時,aws:sourceIP條件金鑰無效。若要限制對 VPC 端點的請求,請使用 aws:sourceVpceaws:sourceVpc 條件金鑰。如需詳細資訊,請參閱《AWS PrivateLink 指南》中的VPC 端點和 VPC 端點服務的身分與存取管理

您可以使用這些全域條件金鑰來控制對 AWS 付款密碼編譯金鑰、別名的存取,以及不依賴於任何特定資源的作業。CreateKey

例如,只有當要求使用指定的 VPC 端點時,下列範例金鑰原則才允許使用者使用 AWS 付款密碼編譯金鑰執行特定的密碼編譯作業,並封鎖來自網際網路和連線的存取 (如果設定)。當使用者向 AWS 付款密碼編譯提出要求時,要求中的 VPC 端點識別碼會與原則中的aws:sourceVpce條件索引鍵值進行比較。如果不相符,則會拒絕請求。

若要使用這類政策,請將預留位置 AWS 帳戶 ID 和 VPC 端點 ID 取代為您帳戶的有效值。

{ "Id": "example-key-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM policies", "Effect": "Allow", "Principal": {"AWS":["111122223333"]}, "Action": ["payment-cryptography:*"], "Resource": "*" }, { "Sid": "Restrict usage to my VPC endpoint", "Effect": "Deny", "Principal": "*", "Action": [ "payment-cryptography:Encrypt", "payment-cryptography:Decrypt" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "" } } } ] }

您也可以使用aws:sourceVpc條件金鑰,根據 VPC 端點所在的 VPC 限制對 AWS 付款密碼編譯金鑰的存取。

下列範例金鑰原則允許管理 AWS 付款密碼編譯金鑰的命令,只有當它們來自vpc-12345678時。此外,它允許使用 AWS 付款密碼編譯金鑰進行密碼編譯作業的命令,只有當它們來自時。vpc-2b2b2b2b如果應用程式在一個 VPC 中執行,但您使用第二個隔離的 VPC 來執行管理功能,您可能會使用如下的政策。

若要使用這類政策,請將預留位置 AWS 帳戶 ID 和 VPC 端點 ID 取代為您帳戶的有效值。

{ "Id": "example-key-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow administrative actions from vpc-12345678", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "payment-cryptography:Create*","payment-cryptography:Encrypt*","payment-cryptography:ImportKey*","payment-cryptography:GetParametersForImport*", "payment-cryptography:TagResource", "payment-cryptography:UntagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "Allow key usage from vpc-2b2b2b2b", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "payment-cryptography:Encrypt","payment-cryptography:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } }, { "Sid": "Allow list/read actions from everywhere", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "payment-cryptography:List*","payment-cryptography:Get*" ], "Resource": "*", } ] }

記錄您的 VPC 端點

AWS CloudTrail 記錄使用 VPC 端點的所有作業。當 AWS 付款密碼編譯要求使用 VPC 端點時,VPC 端點識別碼會顯示在記錄要求的記AWS CloudTrail 錄項目中。您可以使用端點 ID 稽核 AWS 付款密碼編譯 VPC 端點的使用情況。

為了保護您的 VPC,VPC 端點策略拒絕的請求,但否則將被允許的請求不會記錄在中。AWS CloudTrail

例如,此範例記錄項目會記錄使用 VPC 端點的GenerateMac要求。vpcEndpointId 欄位出現在日誌項目結尾。

{ "eventVersion": "1.08", "userIdentity": { "principalId": "TESTXECZ5U9M4LGF2N6Y5:", "arn": "arn:aws:sts::111122223333:assumed-role//", "accountId": "111122223333", "accessKeyId": "TESTXECZ5U2ZULLHHMJG", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTXECZ5U9M4LGF2N6Y5", "arn": "arn:aws:iam::111122223333:role/", "accountId": "111122223333", "userName": "" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-05-27T19:34:10Z", "mfaAuthenticated": "false" }, "ec2RoleDelivery": "2.0" } }, "eventTime": "2024-05-27T19:49:54Z", "eventSource": "payment-cryptography.amazonaws.com", "eventName": "CreateKey", "awsRegion": "us-east-1", "sourceIPAddress": "172.31.85.253", "userAgent": "aws-cli/2.14.5 Python/3.9.16 Linux/6.1.79-99.167.amzn2023.x86_64 source/x86_64.amzn.2023 prompt/off command/payment-cryptography.create-key", "requestParameters": { "keyAttributes": { "keyUsage": "TR31_M1_ISO_9797_1_MAC_KEY", "keyClass": "SYMMETRIC_KEY", "keyAlgorithm": "TDES_2KEY", "keyModesOfUse": { "encrypt": false, "decrypt": false, "wrap": false, "unwrap": false, "generate": true, "sign": false, "verify": true, "deriveKey": false, "noRestrictions": false } }, "exportable": true }, "responseElements": { "key": { "keyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "keyAttributes": { "keyUsage": "TR31_M1_ISO_9797_1_MAC_KEY", "keyClass": "SYMMETRIC_KEY", "keyAlgorithm": "TDES_2KEY", "keyModesOfUse": { "encrypt": false, "decrypt": false, "wrap": false, "unwrap": false, "generate": true, "sign": false, "verify": true, "deriveKey": false, "noRestrictions": false } }, "keyCheckValue": "A486ED", "keyCheckValueAlgorithm": "ANSI_X9_24", "enabled": true, "exportable": true, "keyState": "CREATE_COMPLETE", "keyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "createTimestamp": "May 27, 2024, 7:49:54 PM", "usageStartTimestamp": "May 27, 2024, 7:49:54 PM" } }, "requestID": "f3020b3c-4e86-47f5-808f-14c7a4a99161", "eventID": "b87c3d30-f3ab-4131-87e8-bc54cfef9d29", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "vpcEndpointId": "", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "-oo28vrvr.controlplane.payment-cryptography.us-east-1.vpce.amazonaws.com" } }