CreateServer - AWS Transfer Family

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

CreateServer

在 AWS中根據所選檔案傳輸通訊協定,將自動擴展虛擬伺服器執行個體化。當您更新啟用檔案傳輸通訊協定的伺服器,或使用使用者時,請使用指派給新建立伺服器的由服務產生的 ServerId 屬性。

請求語法

{ "Certificate": "string", "Domain": "string", "EndpointDetails": { "AddressAllocationIds": [ "string" ], "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ], "VpcEndpointId": "string", "VpcId": "string" }, "EndpointType": "string", "HostKey": "string", "IdentityProviderDetails": { "DirectoryId": "string", "Function": "string", "InvocationRole": "string", "SftpAuthenticationMethods": "string", "Url": "string" }, "IdentityProviderType": "string", "LoggingRole": "string", "PostAuthenticationLoginBanner": "string", "PreAuthenticationLoginBanner": "string", "ProtocolDetails": { "As2Transports": [ "string" ], "PassiveIp": "string", "SetStatOption": "string", "TlsSessionResumptionMode": "string" }, "Protocols": [ "string" ], "S3StorageOptions": { "DirectoryListingOptimization": "string" }, "SecurityPolicyName": "string", "StructuredLogDestinations": [ "string" ], "Tags": [ { "Key": "string", "Value": "string" } ], "WorkflowDetails": { "OnPartialUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ], "OnUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ] } }

請求參數

如需所有動作的一般參數資訊,請參閱《Common Parameters》。

請求接受下列JSON格式的資料。

Certificate

(ARN) 憑證的 Amazon Resource Name AWS Certificate Manager (ACM)。當 Protocols 設定為 FTPS 時,此為必要項目。

若要請求新的公有憑證,請參閱 AWS Certificate Manager 使用者指南 中的請求公有憑證

若要將現有憑證匯入 ACM,請參閱 使用者指南 中的將憑證匯入 ACM AWS Certificate Manager

若要FTPS透過私有 IP 地址請求私有憑證,請參閱 AWS Certificate Manager 使用者指南 中的請求私有憑證

支援具有下列密碼編譯演算法和金鑰大小的憑證:

  • 2048 位元 RSA(RSA_2048)

  • 4096 位元 RSA(RSA_4096)

  • 橢圓定焦曲線 256 位元 (EC_prime256v1)

  • 橢圓定焦曲線 384 位元 (EC_secp384r1)

  • 橢圓定焦曲線 521 位元 (EC_secp521r1)

注意

憑證必須是指定 FQDN或 IP 地址的有效 SSL/TLS X.509 第 3 版憑證,以及發行者的相關資訊。

類型:字串

長度限制:長度下限為 0。長度上限為 1600。

必要:否

Domain

用於檔案傳輸的儲存系統網域。有兩個可用網域:Amazon Simple Storage Service (Amazon S3) 和 Amazon Elastic File System (Amazon EFS)。預設值為 S3。

注意

建立伺服器之後,就無法變更網域。

類型:字串

有效值:S3 | EFS

必要:否

EndpointDetails

為您的伺服器設定的虛擬私有雲端 (VPC) 端點設定。當您在 中託管端點時VPC,您只能讓 中的資源存取端點VPC,也可以連接彈性 IP 地址,讓用戶端透過網際網路存取端點。您 VPC的預設安全群組會自動指派給端點。

類型:EndpointDetails 物件

必要:否

EndpointType

您希望您伺服器使用的端點類型。您可以選擇讓伺服器的端點公開存取 (PUBLIC),或在 中託管它VPC。使用託管在 中的端點VPC,您只能限制對伺服器和資源的存取,VPC或選擇直接將彈性 IP 地址連接到網際網路,使其面向網際網路。

注意

2021 年 5 月 19 日後, AWS 帳戶 如果您的帳戶未在 2021 年 5 月 19 日之前建立伺服器,您將無法在 EndpointType=VPC_ENDPOINT中使用 建立伺服器。如果您已 AWS 帳戶 在 2021 年 5 月 19 日或之前在 EndpointType=VPC_ENDPOINT中使用 建立伺服器,則不會受到影響。在此日期之後,請使用 EndpointType=VPC

如需詳細資訊,請參閱停止使用 VPC_ENDPOINT

建議使用 VPC 作為 EndpointType。透過此端點類型,您可以選擇直接將最多三個彈性IPv4地址 (BYO 包含 IP) 與伺服器的端點建立關聯,並使用VPC安全群組來限制用戶端公有 IP 地址的流量。當 EndpointType 設為 VPC_ENDPOINT 時就無法如此。

類型:字串

有效值:PUBLIC | VPC | VPC_ENDPOINT

必要:否

HostKey

用於SFTP已啟用 RSA之伺服器的 ECDSA、 或 ED25519 私有金鑰。您可以新增多個主機金鑰,以防您想要輪換金鑰,或擁有一組使用不同演算法的作用中金鑰。

使用下列命令來產生沒有密碼的 RSA 2048 位元金鑰:

ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key.

針對 -b選項使用最小值 2048。您可以使用 3072 或 4096 建立更強大的金鑰。

使用下列命令來產生沒有密碼的 ECDSA 256 位元金鑰:

ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key.

-b 的選項的有效值ECDSA為 256、384 和 521。

使用下列命令來產生沒有複雜密碼的ED25519金鑰:

ssh-keygen -t ed25519 -N "" -f my-new-server-key.

對於所有這些命令,您可以使用您選擇的字串my-new-server-key取代 。

重要

如果您不打算將現有使用者從已啟用 SFTP的現有伺服器遷移至新的伺服器,請勿更新主機金鑰。意外變更伺服器的主機金鑰可能造成破壞。

如需詳細資訊,請參閱 AWS Transfer Family 使用者指南 中的更新SFTP已啟用 之伺服器的主機金鑰

類型:字串

長度限制:長度下限為 0。長度上限為 4096。

必要:否

IdentityProviderDetails

IdentityProviderType 設定為 AWS_DIRECTORY_SERVICE AWS_LAMBDA或 時為必要API_GATEWAY。接受陣列,其中包含在 中使用目錄AWS_DIRECTORY_SERVICE或叫用客戶提供的身分驗證 所需的所有資訊API,包括API閘道 URL。當 IdentityProviderType 設定為 SERVICE_MANAGED 時,此為非必要項目。

類型:IdentityProviderDetails 物件

必要:否

IdentityProviderType

伺服器的身分驗證模式。預設值為 SERVICE_MANAGED,可讓您在 AWS Transfer Family 服務中存放和存取使用者憑證。

使用 AWS_DIRECTORY_SERVICE 可讓您存取內部部署環境 AWS Directory Service for Microsoft Active Directory 或使用 AWS AD Connector 的 或 Microsoft Active Directory 中的 Active Directory 群組。此選項也要求您使用 IdentityProviderDetails 參數提供 Directory ID。

使用 API_GATEWAY 值來和您選擇的身分提供者整合。此API_GATEWAY設定要求您提供 Amazon API Gateway 端點URL,以使用 IdentityProviderDetails 參數呼叫以進行身分驗證。

使用 AWS_LAMBDA值直接使用 AWS Lambda 函數作為您的身分提供者。如果您選擇此值,您必須在IdentityProviderDetails資料類型ARN的 Function 參數中指定 Lambda 函數的 。

類型:字串

有效值:SERVICE_MANAGED | API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA

必要:否

LoggingRole

(ARN) 角色的 Amazon Resource Name AWS Identity and Access Management (IAM),允許伺服器開啟 Amazon S3 或 Amazon 的 Amazon CloudWatch 記錄EFSevents。設定時,您可以在 CloudWatch 日誌中檢視使用者活動。

類型:字串

長度限制:長度下限為 0。長度上限為 2048。

模式:(|arn:.*role/\S+)

必要:否

PostAuthenticationLoginBanner

指定使用者連線到伺服器時要顯示的字串。此字串會在使用者驗證後顯示。

注意

SFTP 通訊協定不支援驗證後顯示橫幅。

類型:字串

長度限制:長度下限為 0。長度上限為 4096。

模式:[\x09-\x0D\x20-\x7E]*

必要:否

PreAuthenticationLoginBanner

指定使用者連線到伺服器時要顯示的字串。此字串會在使用者驗證之前顯示。例如,下列橫幅會顯示有關使用系統的詳細資訊:

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

類型:字串

長度限制:長度下限為 0。長度上限為 4096。

模式:[\x09-\x0D\x20-\x7E]*

必要:否

ProtocolDetails

為伺服器設定的通訊協定設定。

  • 若要指示被動模式 (適用於 FTP和 FTPS通訊協定),請使用 PassiveIp 參數。輸入單一虛線四元IPv4地址,例如防火牆、路由器或負載平衡器的外部 IP 地址。

  • 若要忽略在用戶端嘗試對您上傳至 Amazon S3 儲存貯體的檔案使用 SETSTAT 命令時所產生的錯誤,請使用 SetStatOption 參數。若要讓 AWS Transfer Family 伺服器忽略SETSTAT命令並上傳檔案,而不需要對SFTP用戶端進行任何變更,請將 值設定為 ENABLE_NO_OP。如果您將 SetStatOption 參數設定為 ENABLE_NO_OP,Transfer Family 會產生 Amazon CloudWatch Logs 的日誌項目,以便您判斷用戶端何時SETSTAT撥打電話。

  • 若要判斷 AWS Transfer Family 伺服器是否透過唯一的工作階段 ID 來恢復最近的交涉工作階段,請使用 TlsSessionResumptionMode 參數。

  • As2Transports 表示AS2訊息的傳輸方法。目前僅支援 HTTP。

類型:ProtocolDetails 物件

必要:否

Protocols

在您的檔案傳輸通訊協定用戶端可以連線到伺服器的端點上,指定檔案傳輸通訊協定或通訊協定。可用的通訊協定包括:

  • SFTP (Secure Shell (SSH) 檔案傳輸通訊協定):檔案傳輸 SSH

  • FTPS (檔案傳輸通訊協定安全):使用TLS加密進行檔案傳輸

  • FTP (檔案傳輸通訊協定):未加密的檔案傳輸

  • AS2 (適用性陳述式 2):用於傳輸結構化 business-to-business資料

注意
  • 如果您選擇 FTPS,您必須選擇儲存在 AWS Certificate Manager (ACM) 中的憑證,當用戶端透過 連線到伺服器時,該憑證可用來識別您的伺服器FTPS。

  • 如果 Protocol 包含 FTPFTPS,則 EndpointType 必須是 VPCIdentityProviderType 必須是 AWS_DIRECTORY_SERVICEAWS_LAMBDAAPI_GATEWAY

  • 如果 Protocol 包含 FTP,則無法與 AddressAllocationIds 建立關聯。

  • 如果 Protocol 僅設定為 SFTP,則 EndpointType 可以設定為 PUBLIC,且 IdentityProviderType 可以設定任何支援的識別類型:SERVICE_MANAGEDAWS_DIRECTORY_SERVICEAWS_LAMBDAAPI_GATEWAY

  • 如果 Protocol 包括 AS2,則 EndpointType 必須為 VPC,且網域必須為 Amazon S3。

類型:字串陣列

陣列成員:項目數下限為 1。最多 4 個項目。

有效值:SFTP | FTP | FTPS | AS2

必要:否

S3StorageOptions

指定是否最佳化 Amazon S3 目錄的效能。此選項根據預設為停用。

根據預設,主目錄映射具有 TYPEDIRECTORY。如果您啟用此選項,則HomeDirectoryMapEntryTypeFILE如果您想要映射具有檔案目標,則需要將 明確設定為 。

類型:S3StorageOptions 物件

必要:否

SecurityPolicyName

指定連接至伺服器的安全政策名稱。

類型:字串

長度限制:長度下限為 0。長度上限為 100。

模式:TransferSecurityPolicy-.+

必要:否

StructuredLogDestinations

指定伺服器日誌的傳送目的地日誌群組。

若要指定日誌群組,您必須ARN為現有日誌群組提供 。在此情況下,日誌群組的格式如下:

arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

例如 arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

如果您先前已為伺服器指定日誌群組,您可以清除該群組,並在update-server通話中提供此參數的空值,從而實際上關閉結構化日誌。例如:

update-server --server-id s-1234567890abcdef0 --structured-log-destinations

類型:字串陣列

陣列成員:項目數下限為 0。項目數上限為 1。

長度限制︰長度下限為 20。長度上限為 1600。

模式:arn:\S+

必要:否

Tags

鍵/值對,可用來分組和搜尋伺服器。

類型:Tag 物件陣列

陣列成員:項目數下限為 1。項目數上限為 50。

必要:否

WorkflowDetails

指定要指派之工作流程的工作流程 ID,以及用於執行工作流程的執行角色。

除了完全上傳檔案時要執行的工作流程外,WorkflowDetails 亦可包含要在部分上傳時執行之工作流程的工作流程 ID (和執行角色)。當伺服器工作階段在檔案仍在上傳時中斷連線時,會發生部分上傳。

類型:WorkflowDetails 物件

必要:否

回應語法

{ "ServerId": "string" }

回應元素

如果動作成功,服務會傳回 200 HTTP 個回應。

服務會以 JSON 格式傳回下列資料。

ServerId

建立之伺服器的服務指派識別碼。

類型:字串

長度限制條件:固定長度為 19。

模式:s-([0-9a-f]{17})

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

AccessDeniedException

您沒有足夠存取權可執行此動作。

HTTP 狀態碼:400

InternalServiceError

當 AWS Transfer Family 服務發生錯誤時,就會擲回此例外狀況。

HTTP 狀態碼:500

InvalidRequestException

當用戶端提交格式不正確的請求時,就會擲回此例外狀況。

HTTP 狀態碼:400

ResourceExistsException

請求的資源不存在,或存在於命令指定的區域以外的區域。

HTTP 狀態碼:400

ResourceNotFoundException

當 AWS Transfer Family 服務找不到資源時,就會擲回此例外狀況。

HTTP 狀態碼:400

ServiceUnavailableException

請求失敗,因為 AWS Transfer Family 服務無法使用。

HTTP 狀態碼:500

ThrottlingException

由於請求調節,因此請求遭到拒絕。

HTTP 狀態碼:400

範例

範例

下列範例會使用 建立新的伺服器VPC_ENDPOINT

請求範例

{ "EndpointType": "VPC", "EndpointDetails":..., "HostKey": "Your RSA private key", "IdentityProviderDetails": "IdentityProvider", "IdentityProviderType": "SERVICE_MANAGED", "LoggingRole": "CloudWatchLoggingRole", "Tags": [ { "Key": "Name", "Value": "MyServer" } ] }

範例

這是此API呼叫的範例回應。

回應範例

{ "ServerId": "s-01234567890abcdef" }

另請參閱

如需在其中一種語言特定的 API中使用此功能的詳細資訊 AWS SDKs,請參閱下列內容: