本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Step Functions 建立 Amazon VPC 端點
如果您使用 Amazon Virtual Private Cloud (Amazon VPC) 託管 AWS 資源,您可以在 Amazon VPC 與 AWS Step Functions 工作流程之間建立連線。您可以將此連線與 Step Functions 工作流程搭配使用,而無需跨公有網際網路。標準工作流程、快速工作流程和同步快速工作流程支援 Amazon VPC 端點。
Amazon VPC 可讓您在自訂虛擬網路中啟動 AWS 資源。您可利用 VPC 來控制您的網路設定,例如 IP 地址範圍、子網路、路由表和網路閘道。如需有關 Amazon VPC 的詳細資訊,請參閱《Amazon VPC 使用者指南》。
若要將 Amazon VPC 連線至 Step Functions,您必須先定義介面 VPC 端點,這可讓您將 VPC 連線至其他服務 AWS 。端點可提供可靠、可擴展的連線能力,且不需要網際網路閘道、網路地址轉譯 (NAT) 執行個體或 VPN 連接。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的界面 VPC 端點 (AWS PrivateLink)。
建立端點
您可以使用 AWS Management Console、 (AWS CLI)、 AWS SDK、 AWS Step Functions API 或 在 AWS Command Line Interface VPC 中建立 AWS Step Functions 端點 AWS CloudFormation。
如需使用 Amazon VPC 主控台或 AWS CLI,請參閱 Amazon VPC 使用者指南中的建立界面端點。
注意
當您建立端點時,請將 Step Functions 指定為您希望 VPC 連線的服務。在 Amazon VPC 主控台中,服務名稱會根據 AWS 區域而有所不同。例如,如果您選擇美國東部 (維吉尼亞北部),標準工作流程和快速工作流程的服務名稱為 com.amazonaws.us-east-1.states,同步快速工作流程的服務名稱為 com.amazonaws.us-east-1.sync-states。
注意
可以使用 VPC 端點,而無需透過私有 DNS 覆寫 SDK 中的端點。不過,如果您想要覆寫適用於同步快速工作流程的 SDK 中的端點,您需要將DisableHostPrefixInjection
組態設定為 true
。範例 (Java SDK V2):
SfnClient.builder() .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com")) .overrideConfiguration(ClientOverrideConfiguration.builder() .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true)) .build()) .build();
如需有關使用 建立和設定端點的資訊 AWS CloudFormation,請參閱AWS CloudFormation 《 使用者指南》中的 AWS::EC2::VPCEndpoint 資源。
Amazon VPC 端點政策
若要控制 Step Functions 的連線存取,您可以在建立 Amazon VPC 端點時連接 AWS Identity and Access Management (IAM) 端點政策。您可以連接多個端點政策來建立複雜的 IAM 規則。如需詳細資訊,請參閱:
Step Functions 的 Amazon Virtual Private Cloud 端點政策
您可以為 Step Functions 建立 Amazon VPC 端點政策,並在其中指定下列項目:
-
可執行動作的主體。
-
可執行的動作。
-
可供執行動作的資源。
下列範例顯示 Amazon VPC 端點政策,允許一個使用者建立狀態機器,並拒絕所有其他使用者刪除狀態機器的許可。範例政策也會授予所有 使用者執行許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*Execution",
"Resource": "*",
"Effect": "Allow",
"Principal": "*"
},
{
"Action": "states:CreateStateMachine",
"Resource": "*",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id
:user/MyUser"
}
},
{
"Action": "states:DeleteStateMachine",
"Resource": "*",
"Effect": "Deny",
"Principal": "*"
}
]
}
如需建立端點政策的詳細資訊,請參閱以下內容: