

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SFTP コネクタの作成
<a name="configure-sftp-connector"></a>

このトピックでは、SFTP コネクタを作成する方法について説明します。各コネクタは、1 つのリモート SFTP サーバーに接続する機能を提供します。次の高レベルタスクを実行して SFTP コネクタを設定します。

**注記**  
Virtual Private Cloud を介してトラフィックをルーティングする VPC ベースのコネクタについては、「」を参照してください[VPC ベースの出力で SFTP コネクタを作成する](create-vpc-sftp-connector-procedure.md)。

1. コネクタの認証情報を に保存します AWS Secrets Manager。

1. シークレット ARN、リモートサーバーの URL またはリソース設定 ARN、コネクタでサポートされるアルゴリズムを含むセキュリティポリシー、およびその他の設定を指定して、コネクタを作成します。

1. コネクタを作成したら、リモート SFTP サーバーとの接続を確立できることをテストできます。

## SFTP コネクタ出力タイプの選択
<a name="choosing-egress-type"></a>

SFTP コネクタを作成するときは、Egress Type を「サービスマネージド」と「VPC Lattice」の間で選択します。
+ **サービスマネージド** (デフォルト): コネクタは、 が所有する NAT ゲートウェイと IP アドレス AWS Transfer Family を使用して、パブリックインターネット経由で接続をルーティングします。このサービスは、接続を確立するためにリモートサーバーで許可リストに登録する必要があるコネクタに 3 つの静的 IP アドレスを提供します。
+ **VPC Lattice**: コネクタは、Amazon VPC Lattice を使用して VPC 環境を介してトラフィックをルーティングします。これらのシナリオでは、SFTP コネクタに VPC 接続を使用します。
  + **プライベート SFTP サーバー**: VPC からのみアクセス可能な SFTP サーバーに接続します。
  + **オンプレミス接続**: AWS Direct Connect または AWS Virtual Private Network 接続を介してオンプレミス SFTP サーバーに接続する
  + **カスタム IP アドレス**: 独自の NAT ゲートウェイと Elastic IP アドレスをリモートサーバーに提示する
  + **一元化されたセキュリティコントロール**: 組織の中央入出力コントロールを介してファイル転送をルーティングする

次のマトリックスは、ユースケースに適したコネクタタイプを選択するのに役立ちます。


**SFTP コネクタ出力タイプのマトリックス**  

| 機能 | 出力タイプ = サービスマネージド | 出力タイプ = VPC Lattice | 
| --- | --- | --- | 
| パブリックにホストされた (インターネットにアクセスできる) SFTP サーバーへの接続 | サポート | サポートされている 1 | 
| プライベートホスト (オンプレミス) SFTP サーバーへの接続 | サポートされていません | サポートされている 2 | 
| プライベートホスト (VPC 内) SFTP サーバーへの接続 | サポート外 | サポート | 
| リモート SFTP サーバーに表示される静的 IP アドレス | サービスが提供する静的 IP アドレスでサポート | お客様所有の静的 IP アドレスでサポート | 
| 使用可能な帯域幅 | アカウントあたり 50 MBPS | 顧客所有の Resource Gateway と NAT Gateway から利用可能な高帯域幅 | 
| 顧客所有の NAT ゲートウェイとネットワークファイアウォールを介したインターネットへのトラフィックルーティング | サポート外。NAT ゲートウェイは Transfer Family サービスによって所有および管理されます。 | サポート | 

1 *Egress Type = VPC Lattice の場合、パブリックホストサーバーへの接続は、Egress VPCs。*

2 *Egress Type = VPC Lattice の場合、プライベートにホストされたサーバーへの接続は、 AWS Direct Connect や VPN などの VPC 内の既存のネットワークを使用してサポートされます。*

**Topics**
+ [SFTP コネクタ出力タイプの選択](#choosing-egress-type)
+ [Secrets Manager に SFTP コネクタの認証情報を保存する](sftp-connector-secret-procedure.md)
+ [サービスマネージド出力で SFTP コネクタを作成する](create-sftp-connector-procedure.md)
+ [VPC ベースの出力で SFTP コネクタを作成する](create-vpc-sftp-connector-procedure.md)
+ [SFTP コネクタをテストします。](test-sftp-connector.md)

# Secrets Manager に SFTP コネクタの認証情報を保存する
<a name="sftp-connector-secret-procedure"></a>

Secrets Manager を使用して、SFTP コネクタのユーザー資格情報を保存できます。シークレットを作成するときは、ユーザー名を指定する必要があります。追加で、パスワード、プライベートキー、またはその両方を提供できます。詳細については、「[SFTPコネクタのクォータ](scale-and-limits-sftp-connector.md#limits-sftp-connector)」を参照してください。

**注記**  
Secrets Manager にシークレットを保存すると、 AWS アカウント に料金が発生します。料金については、「[AWS Secrets Manager 料金](https://aws.amazon.com/secrets-manager/pricing)」を参照してください。

**SFTPコネクタのユーザー資格情報をSecrets Managerに保存するために**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) で AWS Secrets Manager コンソールを開きます。

1. 左側のナビゲーションペインで **[サーバー]** を選択します。

1. [**シークレット**]ページで、[**新しいシークレットの保存**]を選択します。

1. [**シークレットタイプの選択**] ページの[**シークレットタイプ**] で[**その他のシークレットタイプ**] を選択します。

1. シークレットのキー/値情報を指定します。ユーザー名と、プライベートキーまたはパスワードを指定する必要があります。

   1. **[キー/値のペア]** セクションで、**[キー/値]** タブを選択します。
      + **キー** — **Username**と入力します。
      + **value** – パートナーのサーバーへの接続が許可されているユーザーの名前を入力します。

   1. キーペアを指定する場合は、**行の追加**を選択し、**キーと値のペア**セクションで**キーと値の**タブを選択します。
      + **キー** — **PrivateKey**と入力します。
      + **value** – プライベートキーを貼り付けます。

      **ヒント**: 入力するプライベートキーデータは、このユーザー用にリモート SFTP サーバーに保存されているパブリックキーに対応している必要があります。
**注記**  
 AWS Transfer Family SFTP コネクタによる認証にパスフレーズで保護されたプライベートキーを使用することはできません。

      パブリック/プライベートキーペアを生成する方法の詳細については、「」を参照してください[macOS、Linux、または UNIX で SSH キーを作成する](macOS-linux-unix-ssh.md)。

   1. パスワードを入力する場合は、**[行を追加]** を選択し、**[キー/値のペア]** セクションで [Key/Value] タブを選択します。
      + **キー** — **Password**と入力します。
      + [**値**] ー ユーザーのパスワードを入力します。

1. [**次へ**] を選択します。

1. **[シークレットの設定]** ページで、シークレットの名前と説明を入力します。名前には **aws/transfer/** というプレフィックスを使用することをお勧めします。例えば、シークレットを **aws/transfer/connector-1** と名付けることができます。

1. **[次へ]** を選択し、**[ローテーションの設定]** ページのデフォルトを受け入れます。次いで、**[次へ]** を選択します。

1. **[レビュー]** ページで **[ストア]** を選択し、シークレットを作成して保存します。

# サービスマネージド出力で SFTP コネクタを作成する
<a name="create-sftp-connector-procedure"></a>

この手順では、 AWS Transfer Family コンソールまたは を使用して SFTP コネクタを作成する方法について説明します AWS CLI。

------
#### [ Console ]<a name="create-sftp-connector"></a>

**SFTPコネクタを作成するには**

1. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) で AWS Transfer Family コンソールを開きます。

1. 左側のナビゲーションペインで、**SFTP コネクタ**を選択し、**SFTP コネクタの作成**を選択します。

1. **Connector 設定**セクション**の Egress type** で、**Service managed** を選択します。このオプションは、 AWS Transfer Family マネージド Egress インフラストラクチャを使用します。Transfer Family サービスは、各 SFTP コネクタの静的 IP アドレスを提供および管理します。

1. [**コネクタ構成**] セクションで、次の情報を入力します。  
![\[コネクタの設定を示す Transfer Family SFTP コネクタコンソール。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/create-connector-example-config.png)
   + **[URL]** には、リモート SFTP サーバーの URL を入力します。この URL は `sftp://partner-SFTP-server-url`、例えば次のような形式にする必要があります。`sftp://AnyCompany.com`
**注記**  
オプションで、URL にポート番号を指定できます。形式は `sftp://partner-SFTP-server-url:port-number` です。デフォルトのポート番号 (ポートが指定されていない場合) はポート 22 です。
   + **アクセスロール**で、使用する (IAM) ロールの Amazon リソースネーム AWS Identity and Access Management (ARN) を選択します。
     + `StartFileTransfer` リクエストで使用されるファイルロケーションの親ディレクトリに対して、**このロールが読み取りと書き込みのアクセスを提供することを確認します**。
     + **`secretsmanager:GetSecretValue` このロールがシークレットへのアクセス許可を提供していることを確認してください。**
**注記**  
ポリシーでは、シークレットの ARN を指定する必要があります。ARN にはシークレット名が含まれていますが、名前に 6 つのランダムな英数字を追加します。シークレットの ARN の形式は次のとおりです。  

       ```
       arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
       ```
     + 「**このロールに信頼関係が含まれていることを確認する**」ことで、ユーザーの転送要求に対応する際に、コネクタがリソースにアクセスできません。信頼関係の確立の詳細については、[信頼関係を確立するには](requirements-roles.md#establish-trust-transfer) を参照してください。  
****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Sid": "AllowListingOfUserFolder",
             "Action": [
                 "s3:ListBucket",
                 "s3:GetBucketLocation"
             ],
             "Effect": "Allow",
             "Resource": [
                 "arn:aws:s3:::amzn-s3-demo-bucket"
             ]
         },
         {
             "Sid": "HomeDirObjectAccess",
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:DeleteObject",
                 "s3:DeleteObjectVersion",
                 "s3:GetObjectVersion",
                 "s3:GetObjectACL",
                 "s3:PutObjectACL"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
         },
         {
             "Sid": "GetConnectorSecretValue",
             "Effect": "Allow",
             "Action": [
                 "secretsmanager:GetSecretValue"
             ],
             "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
         }
       ]
     }
     ```
**注記**  
アクセス ロールの場合、この例では 1 つのシークレットへのアクセスを許可します。ただし、ワイルドカード文字を使用すると、複数のユーザーとシークレットに対して同じ IAM ロールを再利用する場合に作業を節約できます。例えば、次のリソース ステートメントは、`aws/transfer` で始まる名前を持つすべてのシークレットに対するアクセス許可を付与します。  

     ```
     "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
     ```
SFTP 認証情報を含むシークレットを別の AWS アカウントに保存することもできます。クロスアカウントシークレットアクセスの有効化の詳細については、[「別のアカウントのユーザーの AWS Secrets Manager シークレットへのアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)」を参照してください。

1. コネクタ設定を完了します。
   + (オプション) **[Logging ロールでは]**、CloudWatch ログにイベントをプッシュするために使用するコネクタの IAM ロールを選択します。次のポリシー例では、SFTP コネクタのイベントをログに記録するために必要なアクセス許可を一覧表示します。  
****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "VisualEditor0",
                 "Effect": "Allow",
                 "Action": [
                     "logs:CreateLogStream",
                     "logs:DescribeLogStreams",
                     "logs:CreateLogGroup",
                     "logs:PutLogEvents"
                 ],
                 "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
             }
         ]
     }
     ```

1. 「**SFTPの設定**」セクションで、以下の情報を入力する：  
![\[Transfer Family SFTP コネクタコンソール。SFTP 設定が表示されます。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/create-connector-example-sftp-config.png)
   + **Connector 認証情報**では、ドロップダウンリストから、SFTP ユーザーのプライベートキーまたはパスワード AWS Secrets Manager を含む のシークレットの名前を選択します。シークレットを作成し、特定の方法で保存する必要があります。詳細については、「[Secrets Manager に SFTP コネクタの認証情報を保存する](sftp-connector-secret-procedure.md)」を参照してください。
   + (オプション) `TrustedHostKeys`パラメータを空のままにしてコネクタを作成するオプションがあります。ただし、コネクタの設定でこのパラメータを指定するまで、コネクタはリモートサーバーでファイルを転送できません。コネクタの作成時に信頼されたホストキー (複数可) を入力するか、後で`TestConnection`コンソールアクションまたは API コマンドによって返されるホストキー情報を使用してコネクタを更新できます。つまり、**信頼されたホストキー**のテキストボックスでは、次のいずれかを実行できます。
     + **コネクタの作成時に信頼されたホストキー (複数可) を指定します。**外部サーバーを識別するために使用されるホストキーのパブリック部分を貼り付けます。**[信頼できるホストキーを追加]** を選択してキーを追加することで、複数のキーを追加できます。SFTP サーバーに対して `ssh-keyscan` コマンドを使用して、必要なキーを取得できます。Transfer Family がサポートするトラステッドホストキーの形式とタイプの詳細については、を参照してください[「SFTPConnectorConfig」](https://docs.aws.amazon.com//transfer/latest/APIReference/API_SftpConnectorConfig.html)。
     + *コネクタを作成するときは、信頼されたホストキー (複数可) テキストボックスを空のままにし、後でこの情報を使用してコネクタを更新します。*コネクタの作成時にホストキー情報がない場合は、現時点ではこのパラメータを空のままにして、コネクタの作成に進むことができます。コネクタを作成したら、新しいコネクタの ID を使用して、 AWS CLI またはコネクタの詳細ページで `TestConnection` コマンドを実行します。成功すると、 `TestConnection` は必要なホストキー情報を返します。その後、コンソールを使用して (または `UpdateConnector` AWS CLI コマンドを実行して) コネクタを編集し、 の実行時に返されたホストキー情報を追加できます`TestConnection`。
**重要**  
を実行してリモートサーバーのホストキーを取得する場合は`TestConnection`、返されるキーに対してout-of-band検証を実行してください。  
新しいキーを信頼済みとして受け入れるか、接続先のリモート SFTP サーバーの所有者から受け取った既知のフィンガープリントを使用して、提示されたフィンガープリントを検証する必要があります。
   + (オプション) **最大同時接続**については、ドロップダウンリストから、コネクタがリモートサーバーに作成する同時接続の数を選択します。コンソールのデフォルトの選択は **5** です。

     この設定では、コネクタがリモートサーバーと同時に確立できるアクティブな接続の数を指定します。同時接続を作成すると、並列オペレーションを有効にしてコネクタのパフォーマンスを向上させることができます。

1. **暗号化アルゴリズムオプション**セクションで、**セキュリティポリシー**フィールドのドロップダウンリストから**セキュリティポリシー**を選択します。セキュリティポリシーを使用すると、コネクタがサポートする暗号化アルゴリズムを選択できます。使用可能なセキュリティポリシーとアルゴリズムの詳細については、「」を参照してください[AWS Transfer Family SFTP コネクタのセキュリティポリシー](security-policies-connectors.md)。

1. （オプション）[**Tags**] セクションの[**Key**] と[**Value**] に、1 つ以上のタグをキーと値のペアとして入力します。

1. すべての設定を確認したら、**SFTP コネクタの作成**を選択して SFTP コネクタを作成します。コネクタが正常に作成されると、割り当てられた静的 IP アドレスのリストと**接続のテスト**ボタンが画面に表示されます。ボタンを使用して、新しいコネクタの設定をテストします。  
![\[SFTP コネクタが正常に作成されたときに表示されるコネクタ作成画面。これには、接続をテストするためのボタンと、このコネクタのサービスマネージド静的 IP アドレスのリストが含まれています。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/connector-success-ip.png)

新しい SFTP **[コネクタの]** ID がリストに追加されたコネクタページが表示されます。コネクタの詳細を表示するには、[SFTP コネクタの詳細を表示します。](manage-sftp-connectors.md#sftp-connectors-view-info) を参照してください。

------
#### [ CLI ]

コネクタを作成するには、「[https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateConnector.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateConnector.html)」コマンドを使用します。このコマンドを使用して SFTP コネクタを作成するには、次の情報を指定する必要があります。
+ リモート SFTP サーバーの URL。この URL は `sftp://partner-SFTP-server-url`、例えば次のような形式にする必要があります。`sftp://AnyCompany.com`
+ アクセスロール 使用する AWS Identity and Access Management （IAM）ロールの Amazon リソースネーム（ARN）を選択します。
  + `StartFileTransfer` リクエストで使用されるファイルロケーションの親ディレクトリに対して、**このロールが読み取りと書き込みのアクセスを提供することを確認します**。
  + **`secretsmanager:GetSecretValue` このロールがシークレットへのアクセス許可を提供していることを確認してください。**
**注記**  
ポリシーでは、シークレットの ARN を指定する必要があります。ARN にはシークレット名が含まれていますが、名前に 6 つのランダムな英数字を追加します。シークレットの ARN の形式は次のとおりです。  

    ```
    arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
    ```
  + 「**このロールに信頼関係が含まれていることを確認する**」ことで、ユーザーの転送要求に対応する際に、コネクタがリソースにアクセスできません。信頼関係の確立の詳細については、[信頼関係を確立するには](requirements-roles.md#establish-trust-transfer) を参照してください。  
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
          "Sid": "AllowListingOfUserFolder",
          "Action": [
              "s3:ListBucket",
              "s3:GetBucketLocation"
          ],
          "Effect": "Allow",
          "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket"
          ]
      },
      {
          "Sid": "HomeDirObjectAccess",
          "Effect": "Allow",
          "Action": [
              "s3:PutObject",
              "s3:GetObject",
              "s3:DeleteObject",
              "s3:DeleteObjectVersion",
              "s3:GetObjectVersion",
              "s3:GetObjectACL",
              "s3:PutObjectACL"
          ],
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      },
      {
          "Sid": "GetConnectorSecretValue",
          "Effect": "Allow",
          "Action": [
              "secretsmanager:GetSecretValue"
          ],
          "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
      }
    ]
  }
  ```
**注記**  
アクセス ロールの場合、この例では 1 つのシークレットへのアクセスを許可します。ただし、ワイルドカード文字を使用すると、複数のユーザーとシークレットに対して同じ IAM ロールを再利用する場合に作業を節約できます。例えば、次のリソース ステートメントは、`aws/transfer` で始まる名前を持つすべてのシークレットに対するアクセス許可を付与します。  

  ```
  "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
  ```
SFTP 認証情報を含むシークレットを別の AWS アカウントに保存することもできます。クロスアカウントシークレットアクセスの有効化の詳細については、[「別のアカウントのユーザーの AWS Secrets Manager シークレットへのアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)」を参照してください。
+ (オプション) イベントを CloudWatch ログにプッシュするために使用するコネクタの IAM ロールを選択します。次のポリシー例では、SFTP コネクタのイベントをログに記録するために必要なアクセス許可を一覧表示します。  
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:DescribeLogStreams",
                  "logs:CreateLogGroup",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
          }
      ]
  }
  ```
+ 次の SFTP 構成情報を入力します。
  + SFTP ユーザーのプライベートキーまたはパスワード AWS Secrets Manager を含む のシークレットの ARN。
  + 外部サーバーを識別するために使用されるホストキーの公開部分。必要に応じて、複数の信頼できるホスト キーを指定できます。

  SFTP 情報を提供する最も簡単な方法は、SFTP 情報をファイルに保存することです。例えば、`testSFTPConfig.json` 次のサンプルテキストをという名前のファイルにコピーします。

  ```
  // Listing for testSFTPConfig.json
  {   
     "UserSecretId": "arn:aws::secretsmanager:us-east-2:123456789012:secret:aws/transfer/example-username-key",
     "TrustedHostKeys": [
        "sftp.example.com ssh-rsa AAAAbbbb...EEEE="
     ]
  }
  ```
+ コネクタのセキュリティポリシーを指定し、セキュリティポリシー名を入力します。

**注記**  
`SecretId` は、ARN 全体またはシークレットの名前 (前のリストの *example-username-key*) のいずれかになります。

次に、次のコマンドを実行してコネクタを作成します。

```
aws transfer create-connector --url "sftp://partner-SFTP-server-url" \
--access-role your-IAM-role-for-bucket-access \
--logging-role arn:aws:iam::your-account-id:role/service-role/AWSTransferLoggingAccess \
--sftp-config file:///path/to/testSFTPConfig.json \
--security-policy-name security-policy-name \
--maximum-concurrent-connections integer-from-1-to-5
```

VPC 出力タイプコネクタを記述すると、レスポンスに新しいフィールドが含まれます。

```
{
   "Connector": { 
      "AccessRole": "arn:aws:iam::123456789012:role/connector-role",
      "Arn": "arn:aws:transfer:us-east-1:123456789012:connector/c-1234567890abcdef0",
      "ConnectorId": "c-1234567890abcdef0",
      "Status": "ACTIVE",
      "EgressConfig": {
        "VpcLattice": {
          "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-12345678",
          "PortNumber": 22
        }
      },
      "EgressType": "VPC",
      "ServiceManagedEgressIpAddresses": null,
      "SftpConfig": { 
         "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ],
         "UserSecretId": "aws/transfer/connector-secret"
      },
      "Url": "sftp://my.sftp.server.com:22"
   }
}
```

トラフィック`ServiceManagedEgressIpAddresses`は AWS マネージドインフラストラクチャではなく VPC を通過するため、VPC 出力タイプコネクタでは は null です。

------

# VPC ベースの出力で SFTP コネクタを作成する
<a name="create-vpc-sftp-connector-procedure"></a>

このトピックでは、VPC 接続で SFTP コネクタを作成するstep-by-stepについて説明します。VPC\$1LATTICE 対応コネクタは Amazon VPC Lattice を使用して仮想プライベートクラウド経由でトラフィックをルーティングし、プライベートエンドポイントへの安全な接続またはインターネットアクセスに独自の NAT ゲートウェイを使用します。

**VPC 接続を使用するタイミング**

これらのシナリオでは、SFTP コネクタに VPC 接続を使用します。
+ **プライベート SFTP サーバー**: VPC からのみアクセスできる SFTP サーバーに接続します。
+ **オンプレミス接続**: AWS Direct Connect または AWS Site-to-Site VPN 接続を介してオンプレミス SFTP サーバーに接続します。
+ **カスタム IP アドレス**: BYOIP シナリオを含む独自の NAT ゲートウェイと Elastic IP アドレスを使用します。
+ **一元化されたセキュリティコントロール**: 組織の中央入出力コントロールを介してファイル転送をルーティングします。

![\[SFTP コネクタの VPC ベースの出力を示すアーキテクチャ図。クロス VPC リソースアクセスが仮想プライベートクラウドを介した安全な接続をどのように実現するかを示しています。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/vpc-egress-diagram.png)


## VPC\$1LATTICE 対応 SFTP コネクタの前提条件
<a name="vpc-connector-prerequisites"></a>

VPC\$1LATTICE 対応 SFTP コネクタを作成する前に、次の前提条件を満たす必要があります。

**VPC ベースの接続の仕組み**

VPC Lattice を使用すると、VPC リソースを他の AWS サービスと安全に共有できます。 はサービスネットワーク AWS Transfer Family を使用してリソース共有プロセスを簡素化します。主なコンポーネントは次のとおりです。
+ **リソースゲートウェイ**: VPC へのアクセスポイントとして機能します。これは、最低 2 つのアベイラビリティーゾーンを使用して VPC に作成します。
+ **リソース設定**: 接続する SFTP サーバーのプライベート IP アドレスまたはパブリック DNS 名が含まれます。

VPC\$1LATTICE 対応コネクタを作成すると、 はフォワードアクセスセッション (FAS) AWS Transfer Family を使用して認証情報を一時的に取得し、リソース設定をサービスネットワークに関連付けます。

**必要なセットアップ手順**

1. **VPC インフラストラクチャ**: SFTP サーバー接続要件に必要なサブネット、ルートテーブル、セキュリティグループを含む VPC が適切に設定されていることを確認します。

1. **リソースゲートウェイ**: VPC Lattice `create-resource-gateway` コマンドを使用して、VPC にリソースゲートウェイを作成します。Resource Gateway は、少なくとも 2 つのアベイラビリティーゾーンのサブネットに関連付ける必要があります。詳細については、[「Amazon VPC Lattice ユーザーガイド」の「リソースゲートウェイ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-gateway.html)」を参照してください。 **

1. **リソース設定**: VPC Lattice `create-resource-configuration` コマンドを使用して、ターゲット SFTP サーバーを表すリソース設定を作成します。以下のいずれかを指定できます。
   + プライベートエンドポイントのプライベート IP アドレス
   + パブリックエンドポイントのパブリック DNS 名 (IP アドレスはパブリックエンドポイントではサポートされていません)

1. **認証情報**: 「」の説明 AWS Secrets Manager に従って、SFTP ユーザー認証情報を に保存します[Secrets Manager に SFTP コネクタの認証情報を保存する](sftp-connector-secret-procedure.md)。

**重要**  
リソースゲートウェイとリソース設定は、同じ AWS アカウントで作成する必要があります。リソース設定を作成するときは、まずリソースゲートウェイを設定する必要があります。

VPC リソース設定の詳細については、*「Amazon VPC Lattice ユーザーガイド*」の[「リソース設定](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)」を参照してください。

**注記**  
SFTP コネクタの VPC 接続は、Amazon VPC Lattice リソース AWS リージョン が利用可能な で使用できます。詳細については、[「VPC Lattice に関するFAQs](https://aws.amazon.com/vpc/lattice/faqs/#topic-0)」を参照してください。アベイラビリティーゾーンのサポートはリージョンによって異なり、リソースゲートウェイには最低 2 つのアベイラビリティーゾーンが必要です。

## VPC\$1LATTICE 対応 SFTP コネクタを作成する
<a name="create-vpc-connector-procedure"></a>

前提条件を完了したら、、 AWS マネジメントコンソール、または AWS SDKs を使用して AWS CLI、VPC 接続を備えた SFTP コネクタを作成できます。

------
#### [ Console ]<a name="create-vpc-sftp-connector"></a>

**VPC\$1LATTICE 対応 SFTP コネクタを作成するには**

1. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) で AWS Transfer Family コンソールを開きます。

1. 左側のナビゲーションペインで、**SFTP コネクタ**を選択し、**SFTP コネクタの作成**を選択します。

1. **コネクタ設定**セクションの **Egress type** で、**VPC Lattice **を選択します。

   このオプションは、クロス VPC リソースアクセスに Amazon VPC Lattice を使用して VPC 経由でトラフィックをルーティングします。このオプションを使用して、プライベートにホストされたサーバーエンドポイントに接続したり、VPC のセキュリティコントロールを介してトラフィックをルーティングしたり、独自の NAT ゲートウェイと Elastic IP アドレスを使用したりできます。リモート SFTP サーバーのアドレスは、VPC のリソース設定として表されます。リソース設定の詳細については、「Amazon [VPC Lattice ユーザーガイド」の「VPC リソースのリソース設定](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)」を参照してください。

1. コネクタ設定を完了します。
   + **アクセスロール**で、使用する (IAM) ロールの Amazon リソースネーム AWS Identity and Access Management (ARN) を選択します。
     + `StartFileTransfer` リクエストで使用されるファイルロケーションの親ディレクトリに対して、**このロールが読み取りと書き込みのアクセスを提供することを確認します**。
     + **`secretsmanager:GetSecretValue` このロールがシークレットへのアクセス許可を提供していることを確認してください。**
**注記**  
ポリシーでは、シークレットの ARN を指定する必要があります。ARN にはシークレット名が含まれていますが、名前に 6 つのランダムな英数字を追加します。シークレットの ARN の形式は次のとおりです。  

       ```
       arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
       ```
     + 「**このロールに信頼関係が含まれていることを確認する**」ことで、ユーザーの転送要求に対応する際に、コネクタがリソースにアクセスできません。信頼関係の確立の詳細については、[信頼関係を確立するには](requirements-roles.md#establish-trust-transfer) を参照してください。  
****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Sid": "AllowListingOfUserFolder",
             "Action": [
                 "s3:ListBucket",
                 "s3:GetBucketLocation"
             ],
             "Effect": "Allow",
             "Resource": [
                 "arn:aws:s3:::amzn-s3-demo-bucket"
             ]
         },
         {
             "Sid": "HomeDirObjectAccess",
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:DeleteObject",
                 "s3:DeleteObjectVersion",
                 "s3:GetObjectVersion",
                 "s3:GetObjectACL",
                 "s3:PutObjectACL"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
         },
         {
             "Sid": "GetConnectorSecretValue",
             "Effect": "Allow",
             "Action": [
                 "secretsmanager:GetSecretValue"
             ],
             "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
         }
       ]
     }
     ```
**注記**  
アクセス ロールの場合、この例では 1 つのシークレットへのアクセスを許可します。ただし、ワイルドカード文字を使用すると、複数のユーザーとシークレットに対して同じ IAM ロールを再利用する場合に作業を節約できます。例えば、次のリソース ステートメントは、`aws/transfer` で始まる名前を持つすべてのシークレットに対するアクセス許可を付与します。  

     ```
     "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
     ```
SFTP 認証情報を含むシークレットを別の AWS アカウントに保存することもできます。クロスアカウントシークレットアクセスの有効化の詳細については、[「別のアカウントのユーザーの AWS Secrets Manager シークレットへのアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)」を参照してください。
   + **リソース設定 ARN** には、SFTP サーバーを指す VPC Lattice リソース設定の ARN を入力します。

     ```
     arn:aws:vpc-lattice:region:account-id:resourceconfiguration/rcfg-12345678
     ```
   + (オプション) **[Logging ロールでは]**、CloudWatch ログにイベントをプッシュするために使用するコネクタの IAM ロールを選択します。  
****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "VisualEditor0",
                 "Effect": "Allow",
                 "Action": [
                     "logs:CreateLogStream",
                     "logs:DescribeLogStreams",
                     "logs:CreateLogGroup",
                     "logs:PutLogEvents"
                 ],
                 "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
             }
         ]
     }
     ```

1. 「**SFTPの設定**」セクションで、以下の情報を入力する：
   + **Connector 認証情報**で、SFTP ユーザーのプライベートキーまたはパスワード AWS Secrets Manager を含む のシークレットの名前を選択します。
   + **信頼できるホストキー**の場合は、外部サーバーを識別するために使用されるホストキーのパブリック部分に貼り付けるか、空のままにして後で `TestConnection` コマンドを使用して を設定します。

     このホストキーは VPC\$1LATTICE コネクタ用であるため、キー内のホスト名を削除します。
   + (オプション) **最大同時接続**では、コネクタがリモートサーバーに作成する同時接続の数を選択します (デフォルトは 5)。

1. **暗号化アルゴリズムオプション**セクションで、ドロップダウンリストから**セキュリティポリシー**を選択します。

1. (オプション) **タグ**セクションで、キーと値のペアとしてタグを追加します。

1. **SFTP コネクタの作成** を選択して、VPC\$1LATTICE 対応 SFTP コネクタを作成します。

コネクタは、リソースの関連付けのプロビジョニング`PENDING`中に ステータスで作成されます。通常は数分かかります。ステータスが に変わると`ACTIVE`、コネクタを使用できるようになります。

------
#### [ CLI ]

次のコマンドを使用して、VPC\$1LATTICE 対応 SFTP コネクタを作成します。

```
aws transfer create-connector \
    --url "sftp://my.sftp.server.com:22" \
    --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
    --sftp-config UserSecretId=my-secret-id,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
    --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-1234567890abcdef0} \
    --security-policy-name TransferSecurityPolicy-2024-01
```

VPC 接続のキーパラメータは で`--egress-config`、SFTP サーバーターゲットを定義するリソース設定 ARN を指定します。

------

## VPC コネクタのステータスのモニタリング
<a name="vpc-connector-status-monitoring"></a>

VPC\$1LATTICE 対応コネクタには非同期セットアッププロセスがあります。作成後、コネクタのステータスをモニタリングします。
+ **保留中**: コネクタがプロビジョニングされています。サービスネットワークのプロビジョニングが進行中であり、通常は数分かかります。
+ **ACTIVE**: コネクタは使用可能で、ファイルを転送できます。
+ **エラー**: コネクタのプロビジョニングに失敗しました。トラブルシューティング情報については、エラーの詳細を確認してください。

`describe-connector` コマンドを使用してコネクタのステータスを確認します。

```
aws transfer describe-connector --connector-id c-1234567890abcdef0
```

PENDING 状態の間、`test-connection`API はプロビジョニングが完了するまで「Connector not available」を返します。

## 制約事項と考慮事項
<a name="vpc-connectivity-limitations"></a>
+ **パブリックエンドポイント**: VPC 経由でパブリックエンドポイントに接続する場合は、リソース設定で DNS 名を指定する必要があります。パブリック IP アドレスはサポートされていません。
+ **リージョンの可用性**: VPC 接続は一部の で利用できます AWS リージョン。クロスリージョンリソース共有はサポートされていません。
+ **アベイラビリティーゾーンの要件**: リソースゲートウェイは、少なくとも 2 つのアベイラビリティーゾーンのサブネットに関連付ける必要があります。すべてのアベイラビリティーゾーンがすべてのリージョンで VPC Lattice をサポートしているわけではありません。
+ **接続制限**: TCP 接続のアイドルタイムアウトが 350 秒のリソースあたり最大 350 接続。

## コストに関する考慮事項
<a name="vpc-connectivity-costs"></a>

からの追加料金は、通常のサービス料金 AWS Transfer Family を超えて発生しません。ただし、Amazon Virtual Private Cloud リソースの共有に関連する Amazon VPC Lattice からの追加料金、およびインターネットへの送信に独自の NAT ゲートウェイを使用する場合の NAT ゲートウェイ料金が発生する場合があります。

 AWS Transfer Family 料金の詳細については、[AWS Transfer Family 料金ページ](https://aws.amazon.com/aws-transfer-family/pricing/)を参照してください。

## SFTP コネクタの VPC 接続の例
<a name="sftp-connectors-vpc-examples"></a>

このセクションでは、さまざまなシナリオで VPC 接続を使用して SFTP コネクタを作成する例を示します。これらの例を使用する前に、VPC 接続ドキュメントの説明に従って VPC インフラストラクチャのセットアップが完了していることを確認してください。

### 例: プライベートエンドポイント接続
<a name="vpc-connector-private-endpoint-example"></a>

この例では、VPC からのみアクセス可能なプライベート SFTP サーバーに接続する SFTP コネクタを作成する方法を示します。

**前提条件**

1. VPC にリソースゲートウェイを作成します。

   ```
   aws vpc-lattice create-resource-gateway \
       --name my-private-server-gateway \
       --vpc-identifier vpc-1234567890abcdef0 \
       --subnet-ids subnet-1234567890abcdef0 subnet-0987654321fedcba0
   ```

1. プライベート SFTP サーバーのリソース設定を作成します。

   ```
   aws vpc-lattice create-resource-configuration \
       --name my-private-server-config \
       --resource-gateway-identifier rgw-1234567890abcdef0 \
       --resource-configuration-definition ipResource={ipAddress="10.0.1.100"} \
       --port-ranges 22
   ```

**VPC\$1LATTICE 対応コネクタを作成する**

1. VPC 接続を使用して SFTP コネクタを作成します。

   ```
   aws transfer create-connector \    
       --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
       --sftp-config UserSecretId=my-private-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
       --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22}
   ```

1. コネクタのステータスが になるまでモニタリングします`ACTIVE`。

   ```
   aws transfer describe-connector --connector-id c-1234567890abcdef0
   ```

リモート SFTP サーバーには、VPC CIDR 範囲内の Resource Gateway の IP アドレスからの接続が表示されます。

### 例: VPC 経由のパブリックエンドポイント
<a name="vpc-connector-public-endpoint-example"></a>

この例では、VPC を介してパブリック SFTP サーバーに接続をルーティングして、一元化されたセキュリティコントロールを活用し、独自の NAT Gateway IP アドレスを使用する方法を示します。

**前提条件**

1. VPC にリソースゲートウェイを作成します (プライベートエンドポイントの例と同じ）。

1. DNS 名を使用してパブリック SFTP サーバーのリソース設定を作成します。

   ```
   aws vpc-lattice create-resource-configuration \
       --name my-public-server-config \
       --resource-gateway-identifier rgw-1234567890abcdef0 \
       --resource-configuration-definition dnsResource={domainName="sftp.example.com"} \
       --port-ranges 22
   ```
**注記**  
パブリックエンドポイントの場合、IP アドレスではなく DNS 名を使用する必要があります。

**コネクタを作成する**
+ SFTP コネクタを作成します。

  ```
  aws transfer create-connector \
      --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
      --sftp-config UserSecretId=my-public-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
      --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0987654321fedcba0,PortNumber=22}
  ```

トラフィックはコネクタから Resource Gateway に流れ、次に NAT Gateway を経由してパブリック SFTP サーバーに到達します。リモートサーバーには、NAT ゲートウェイの Elastic IP アドレスがソースとして表示されます。

### 例: クロスアカウントプライベートエンドポイント
<a name="vpc-connector-cross-account-example"></a>

この例では、リソース共有を使用して別の AWS アカウントのプライベート SFTP サーバーに接続する方法を示します。

**注記**  
クロス VPC リソース共有が他のメカニズムで既に有効になっている場合は AWS Transit Gateway、ここで説明するリソース共有を設定する必要はありません。Transit Gateway ルートテーブルなどの既存のルーティングメカニズムは、SFTP コネクタによって自動的に使用されます。リソース設定は、SFTP コネクタを作成するのと同じアカウントでのみ作成する必要があります。

**アカウント A (リソースプロバイダー) - リソース設定を共有する**

1. アカウント A にリソースゲートウェイとリソース設定を作成します (前の例と同じ）。

1. Resource Access Manager を使用して AWS 、リソース設定をアカウント B と共有します。

   ```
   aws ram create-resource-share \
       --name cross-account-sftp-share \
       --resource-arns arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0 \
       --principals 222222222222
   ```

**アカウント B (リソースコンシューマー) - 共有を受け入れて使用する**

1. リソース共有の招待を受け入れます。

   ```
   aws ram accept-resource-share-invitation \
       --resource-share-invitation-arn arn:aws:ram:us-east-1:111111111111:resource-share-invitation/invitation-id
   ```

1. アカウント B で SFTP コネクタを作成します。

   ```
   aws transfer create-connector \
       --access-role arn:aws:iam::222222222222:role/TransferConnectorRole \
       --sftp-config UserSecretId=cross-account-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
       --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22}
   ```

アカウント B のコネクタは、共有リソース設定を通じてアカウント A のプライベート SFTP サーバーにアクセスできるようになりました。

### 一般的なトラブルシューティングのシナリオ
<a name="vpc-connector-troubleshooting-examples"></a>

VPC\$1LATTICE 対応コネクタを作成する際の一般的な問題の解決策を次に示します。
+ **コネクタが保留中ステータスのまま:** Resource Gateway がアクティブで、サポートされているアベイラビリティーゾーンにサブネットがあることを確認します。コネクタがまだ PENDING 状態でスタックしている場合は、最初に使用したものと同じ設定パラメータ`UpdateConnector`を使用して を呼び出します。これにより、問題を解決する可能性のある新しいステータスイベントがトリガーされます。
+ **接続タイムアウト**: セキュリティグループルールがポート 22 でのトラフィックを許可し、VPC ルーティングが正しいことを確認します。
+ **DNS 解決の問題**: パブリックエンドポイントの場合、VPC に NAT ゲートウェイまたはインターネットゲートウェイを介したインターネット接続があることを確認します。
+ **クロスアカウントアクセスが拒否**されました: リソース共有が受け入れられ、リソース設定 ARN が正しいことを確認します。オリジンアカウントがリソース共有を作成するときに、適切なアクセス許可ポリシーがリソース設定にアタッチされている場合は、、`vpc-lattice:AssociateViaAWSService``vpc-lattice:AssociateViaAWSService-EventsAndStates`、`vpc-lattice:CreateServiceNetworkResourceAssociation`、 のアクセス許可が必要です`vpc-lattice:GetResourceConfiguration`。

# SFTP コネクタをテストします。
<a name="test-sftp-connector"></a>

SFTP コネクタを作成した後、新しいコネクタを使用してファイルを転送する前にテストすることをお勧めします。

**SFTP コネクタをテストするには**

1. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) で AWS Transfer Family コンソールを開きます。

1. 左側のナビゲーションペインで、**SFTP コネクタ**を選択し、コネクタを選択します。

1. [**アクション**] メニューから[**テスト接続**] を選択します。  
![\[Transfer Family コンソールでは、SFTP コネクタが選択され、[接続テスト] の接続テストアクションが強調表示されます。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/connector-test-choose.png)

システムはテストが合格したかどうかを示すメッセージを返します。テストに失敗した場合、システムは失敗の理由に基づいたエラーメッセージを提供します。

![\[SFTP コネクタのテスト接続パネルで、成功したテストが表示されています。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/connector-test-success.png)


![\[SFTP コネクタのテスト接続パネルで、失敗したテストが表示されています。エラーメッセージによれば、コネクタのアクセスロールが正しくないことが示されています。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/connector-test-fail-role.png)


**注記**  
コネクタをテストするために API を使用するには、[「TestConnection」](https://docs.aws.amazon.com/transfer/latest/APIReference/API_TestConnection) API ドキュメントを参照してください。