

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

# SFTP コネクタのセットアップと使用
<a name="sftp-connectors-tutorial"></a>

コネクタの目的は、 AWS ストレージとパートナーの SFTP サーバーとの関係を確立することです。Amazon S3 からパートナーが所有する外部の宛先にファイルを送信できます。SFTP コネクタを使用して、パートナーの SFTP サーバーからファイルを取得することもできます。

このチュートリアルでは、サービスマネージド型と VPC\_LATTICE 出力タイプの両方を使用して SFTP コネクタをセットアップし、Amazon S3 ストレージと SFTP サーバー間でファイルを転送する方法について説明します。

SFTP コネクタは から SFTP 認証情報を取得 AWS Secrets Manager してリモート SFTP サーバーに認証し、接続を確立します。コネクタは、リモートサーバーとの間でファイルを送信または取得し、Amazon S3 にファイルを保存します。サービスマネージド出力 ( AWS マネージドインフラストラクチャを使用) または VPC 出力 (クロス VPC リソースアクセスを使用した VPC 経由のルーティング) を選択できます。IAM ロールは、Amazon S3 バケットと Secrets Manager に保存されている認証情報へのアクセスを許可するために使用されます。また、Amazon CloudWatch にログインすることもできます。

![SFTP コネクタが Secrets Manager、Amazon S3、CloudWatch ログ、IAM ロール、リモート SFTP サーバーとやり取りする方法のアーキテクチャ図。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/sftp-connector-arch-diag.png)


次のブログ記事では、SFTP コネクタを使用して MFT ワークフローを構築するためのリファレンスアーキテクチャを提供します。これには、SFTP コネクタを使用してリモート SFTP サーバーに送信する前に PGP を使用してファイルを暗号化する、[SFTP コネクタと PGP AWS Transfer Family 暗号化を使用した安全で準拠のマネージドファイル転送の設計が含まれます。](https://aws.amazon.com/blogs//storage/architecting-secure-and-compliant-managed-file-transfers-with-aws-transfer-family-sftp-connectors-and-pgp-encryption/)

## コネクタ出力タイプ
<a name="connector-egress-types"></a>

SFTP コネクタは、コネクタがリモート SFTP サーバーにトラフィックをルーティングする方法を決定する 2 つの出力タイプをサポートしています。
+ **SERVICE\_MANAGED** (デフォルト): AWS アウトバウンド接続に静的 IP アドレスを持つ Transfer Family マネージドインフラストラクチャを使用します。
+ **VPC**: クロス VPC リソースアクセスを使用して VPC 経由でトラフィックをルーティングし、プライベートエンドポイントの接続と独自の NAT ゲートウェイの使用を可能にします。

このチュートリアルでは、両方の出力タイプについて説明します。次の必要がある場合は、VPC 出力タイプを選択します。
+ VPC 内のプライベート SFTP サーバーに接続する (プライベート IP アドレス)
+ Direct Connect または VPN 経由でオンプレミス SFTP サーバーに接続する
+ セキュリティコントロールのために VPC 経由でパブリックエンドポイントトラフィックをルーティングする
+ アウトバウンド接続に独自の Elastic IP アドレスを使用する

**Topics**
+ [コネクタ出力タイプ](#connector-egress-types)
+ [ステップ 1: 必要なサポートリソースを作成する](#create-prereq-resources)
+ [ステップ 2: SFTP コネクタを作成してテストする](#create-connector-tutorial)
+ [ステップ 3: SFTP コネクタを使用してファイルを送信および取得する](#use-connector-tutorial)
+ [リモート SFTP サーバーとして使用する Transfer Family サーバーを作成する手順](#non-standard-tutorial-procedures)

## ステップ 1: 必要なサポートリソースを作成する
<a name="create-prereq-resources"></a>

SFTP コネクタを使用して、Amazon S3 と任意のリモート SFTP サーバー間でファイルをコピーできます。このチュートリアルでは、リモート SFTP AWS Transfer Family サーバーとして サーバーを使用しています。次のリソースを作成して設定する必要があります。
+ Amazon S3 バケットを作成して AWS 環境にファイルを保存し、リモート SFTP サーバーからファイルを送受信します。 [Amazon S3 バケットを作成する](#sftp-tutorial-s3-bucket)
+ Secrets Manager で Amazon S3 ストレージとシークレットにアクセスするための AWS Identity and Access Management ロールを作成します。 [必要なアクセス許可を持つ IAM ロールを作成する](#sftp-tutorial-role)
+ SFTP プロトコルを使用する Transfer Family サーバーと、SFTP コネクタを使用して SFTP サーバーとの間でファイルを転送するサービスマネージドユーザーを作成します[Transfer Family SFTP サーバーとユーザーを作成する](#sftp-tutorial-server)。
+ SFTP コネクタがリモート SFTP サーバーにログインするために使用する認証情報を保存する AWS Secrets Manager シークレットを作成します[シークレットを作成して に保存する AWS Secrets Manager](#sftp-tutorial-secret)。

VPC 出力タイプコネクタの場合、以下も必要です。
+ 適切なサブネットとセキュリティグループを持つ VPC
+ リソースゲートウェイ (最低 2 つのアベイラビリティーゾーンが必要): [リソースゲートウェイを作成する (VPC 出力タイプのみ)](#sftp-tutorial-resource-gateway)。
+ SFTP サーバーを指すリソース設定: [リソース設定を作成する (VPC 出力タイプのみ)](#sftp-tutorial-resource-config)。詳細については、「*Amazon VPC Lattice ユーザーガイド*」の「[Resource configurations](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)」を参照してください。

### Amazon S3 バケットを作成する
<a name="sftp-tutorial-s3-bucket"></a>

**Amazon S3 バケットを作成するには**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で AWS Transfer Family コンソールにサインインします。

1. リージョンを選択し、名前を入力します。

    このチュートリアルでは、バケットは にあり**US East (N. Virginia) us-east-1**、名前は です**sftp-server-storage-east**。

1. デフォルトを受け入れ、**バケットの作成**を選択します。

Amazon S3 バケットの作成の詳細については、[S3 バケットの作成方法」を参照してください。](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket-overview.html) *「Amazon Simple Storage Service ユーザーガイド*」の「」を参照してください。

### 必要なアクセス許可を持つ IAM ロールを作成する
<a name="sftp-tutorial-role"></a>

アクセスロールには、次のアクセス許可を持つポリシーを作成します。

------
#### [ JSON ]

****  

```
{
  "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}}"
    }
  ]
}
```

------

次のように項目を置き換えます。
+ の場合`amzn-s3-demo-bucket`、チュートリアルでは を使用します**sftp-server-storage-east**。
+ {{リージョン}}の場合、チュートリアルでは を使用します**us-east-1**。
+ {{account-id}} には AWS アカウント 、ID を使用します。
+ {{SecretName-6RandomCharacters}} の場合、名前**using sftp-connector1**は です (シークレットには独自の 6 つのランダムな文字があります）。

また、このロールに、ユーザーの転送リクエストを処理するときにコネクタがリソースにアクセスできるようにする信頼関係が含まれていることを確認する必要があります。信頼関係の確立の詳細については、[信頼関係を確立するには](requirements-roles.md#establish-trust-transfer) を参照してください。

**注記**  
チュートリアルで使用しているロールの詳細については、「」を参照してください[ユーザーロールとアクセスロールの組み合わせ](#sftp-tutorial-combined-role)。

### シークレットを作成して に保存する AWS Secrets Manager
<a name="sftp-tutorial-secret"></a>

SFTP コネクタのユーザー認証情報を保存するには、Secrets Manager にシークレットを保存する必要があります。パスワード、SSH プライベートキー、またはその両方を使用できます。このチュートリアルでは、プライベートキーを使用しています。

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

シークレットを保存する手順を開始する前に、プライベートキーを取得してフォーマットします。プライベートキーは、リモート SFTP サーバーのユーザー用に設定されたパブリックキーに対応する必要があります。このチュートリアルでは、プライベートキーは、リモートサーバーとして使用している Transfer Family SFTP サーバーにテストユーザー用に格納されているパブリックキーに対応している必要があります。

これを行うには、次のコマンドを実行します。

```
jq -sR . {{path-to-private-key-file}}
```

たとえば、プライベートキーファイルが にある場合`~/.ssh/sftp-testuser-privatekey`、 コマンドは次のようになります。

```
jq -sR . ~/.ssh/sftp-testuser-privatekey
```

これにより、キーが正しい形式 (改行文字が埋め込まれている) で標準出力に出力されます。このテキストは、次の手順 (ステップ 6) で貼り付ける必要があるため、どこかにコピーします。

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

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

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

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

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

1. **[キー/値のペア]** セクションで、**[キー/値]** タブを選択します。
   + **キー** — と入力します**Username**。
   + value**** — ユーザーの名前 を入力します**sftp-testuser**。

1. キーを入力するには、**プレーンテキスト**タブを使用することをお勧めします。

   1. **行を追加** を選択し、 と入力します**PrivateKey**。

   1. **[プレーンテキスト] **タブを選択します。フィールドには、次のテキストが含まれるようになりました。

      ```
      {"Username":"sftp-testuser","PrivateKey":""}
      ```

   1. 空の二重引用符 (「」) の間にプライベートキー (先ほど保存) のテキストを貼り付けます。

      画面は次のようになります (キーデータはグレー表示されます）。  
![ユーザー名とプライベートキーを示すプレーンテキストのシークレット。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/sftp-tutorial-secret.png)

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

1. **シークレットの設定**ページで、シークレットの名前を入力します。このチュートリアルでは、シークレットに という名前を付けます**aws/transfer/sftp-connector1**。

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

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

### リソースゲートウェイを作成する (VPC 出力タイプのみ)
<a name="sftp-tutorial-resource-gateway"></a>

VPC 出力タイプコネクタの場合は、VPC に Resource Gateway を作成する必要があります。Resource Gateway は、クロス VPC リソースアクセスのエントリポイントとして機能します。

**リソースゲートウェイを作成するには**

1. 次のコマンドを実行して Resource Gateway を作成します (VPC ID とサブネット IDs を値に置き換えます）。

   ```
   aws vpc-lattice create-resource-gateway \
       --name my-sftp-resource-gateway \
       --vpc-identifier vpc-12345678 \
       --subnet-ids subnet-12345678 subnet-87654321
   ```
**注記**  
リソースゲートウェイには、少なくとも 2 つのアベイラビリティーゾーンにサブネットが必要です。

1. 次のステップで使用するレスポンスの Resource Gateway ID を書き留めます。

### リソース設定を作成する (VPC 出力タイプのみ)
<a name="sftp-tutorial-resource-config"></a>

SFTP サーバーを指すリソース設定を作成します。これは、VPC 内のサーバーのプライベート IP アドレスでも、外部サーバーのパブリック DNS 名でもかまいません。リソース設定の詳細については、*「Amazon VPC Lattice ユーザーガイド*」の[「リソース設定](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)」を参照してください。

**リソース設定を作成するには**

1. プライベート SFTP サーバーの場合は、以下を実行します。

   ```
   aws vpc-lattice create-resource-configuration \
       --name my-sftp-resource-config \
       --port-ranges 22 \
       --type SINGLE \
       --resource-gateway-identifier rgw-12345678 \
       --resource-configuration-definition ipResource={ipAddress="10.0.1.100"}
   ```

1. パブリック SFTP サーバー (DNS 名のみ) の場合は、以下を実行します。

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

1. コネクタの作成時に使用するレスポンスのリソース設定 ARN を書き留めます。

## ステップ 2: SFTP コネクタを作成してテストする
<a name="create-connector-tutorial"></a>

このセクションでは、前に作成したすべてのリソースを使用する SFTP コネクタを作成します。詳細については、[SFTP コネクタの作成](configure-sftp-connector.md)を参照してください。

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

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

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

1. **Egress タイプ**では、次のいずれかを選択します。
   + **サービスマネージド** (デフォルト): アウトバウンド接続に静的 IP アドレスを持つ AWS Transfer Family マネージドインフラストラクチャを使用します。
   + **VPC Lattice**: クロス VPC リソースアクセスを使用して VPC 経由でトラフィックをルーティングします。プライベートエンドポイント接続または独自の NAT ゲートウェイを使用するには、このオプションを選択します。
**重要**  
コネクタの作成後に出力タイプを変更することはできません。接続要件に基づいて慎重に選択してください。

1. [**コネクタ構成**] セクションで、次の情報を入力します。
   + **URL** には、リモート SFTP サーバーの URL を入力します。このチュートリアルでは、リモート SFTP サーバーとして使用している Transfer Family サーバーの URL を入力します。

     ```
     sftp://s-{{1111aaaa2222bbbb3}}.server.transfer.us-east-1.amazonaws.com
     ```

     {{1111aaaa2222bbbb3}} を Transfer Family サーバー ID に置き換えます。
   + **アクセスロール**には、前に作成したロール を入力します**sftp-connector-role**。
   + **リソース設定 ARN** (VPC Lattice 出力タイプのみ) には、前に作成したリソース設定の ARN を入力します。

     ```
     arn:aws:vpc-lattice:us-east-1:{{account-id}}:resourceconfiguration/rcfg-{{12345678}}
     ```
   + **ログ記録ロール**では、プリンシパル要素`transfer.amazonaws.com`に を含む信頼ポリシーを含むロールを選択します。

     **ヒント: **Transfer Family を信頼されたエンティティとして追加することに加えて、**AWSTransferLoggingAccess** AWS 管理ポリシーをロールに追加できます。このポリシーの詳細については、[AWSTransferLoggingAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferLoggingAccess.html) を参照してください。  
![コネクタの設定を示す Transfer Family SFTP コネクタコンソール。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/create-connector-example-config.png)

1. 「**SFTPの設定**」セクションで、以下の情報を入力する：
   + **Connector 認証情報**で、SFTP 認証情報を含む Secrets Manager リソースの名前を選択します。チュートリアルでは、 を選択します**aws/transfer/sftp-connector1**。
   + **信頼できるホストキー には**、ホストキーのパブリック部分を貼り付けます。このキーを取得するには、SFTP サーバー`ssh-keyscan`で を実行します。信頼できるホストキーのフォーマットと保存方法の詳細については、 [https://docs.aws.amazon.com//transfer/latest/APIReference/API_SftpConnectorConfig.html](https://docs.aws.amazon.com//transfer/latest/APIReference/API_SftpConnectorConfig.html) データ型のドキュメントを参照してください。
   + **最大同時接続**数では、1～5 の整数値を選択します。デフォルト値は 5 です。  
![Transfer Family SFTP コネクタコンソール。SFTP 設定が表示されます。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/create-connector-example-sftp-config.png)

1. すべての設定を確認したら、[**コネクタの作成**] を選択して SFTP コネクタを作成します。

を使用してコネクタを作成することもできます AWS Command Line Interface。
+ サービスマネージド Egress で SFTP コネクタを作成するには、次のコマンドを実行します。

  ```
  aws transfer create-connector \
      --url "sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com" \
      --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \
      --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..."
  ```
+ VPC ベースの出力で SFTP コネクタを作成するには、次のコマンドを実行します。

  ```
  aws transfer create-connector \
     --url "sftp://my.sftp.server.com:22" \
     --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \
     --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
     --egress-config VpcLattice={ResourceConfigurationArn="arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678",PortNumber=22}
  ```

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

**注記**  
VPC 出力タイプのコネクタの場合、DNS 解決には作成後数分かかることがあります。この間、コネクタのステータスは `PENDING`になり`TestConnection`、「Connector not available」が返されます。ファイル転送を試みる`ACTIVE`前に、ステータスが になるまで待ちます。

------
#### [ Test a connector using the console ]

**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)


------
#### [ Test a connector using the CLI ]

を使用してコネクタをテストするには AWS Command Line Interface、コマンドプロンプトで次のコマンドを実行します ({{connector-id}} を実際のコネクタ ID に置き換えます）。

```
aws transfer test-connection --connector-id c-{{connector-id}}
```

テストが成功すると、次の行が返されます。

```
{
   "Status": "OK",
   "StatusMessage": "Connection succeeded"
}
```

テストが失敗した場合は、次のような説明的なエラーメッセージが表示されます。

```
{
   "Status": "ERROR",
   "StatusMessage": "Unable to assume the configured access role"
}
```

------

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

```
{
   "Connector": { 
      "AccessRole": "arn:aws:iam::219573224423:role/sftp-connector-role",
      "Arn": "arn:aws:transfer:us-east-1:219573224423:connector/c-5dfa309ccabf40759",
      "ConnectorId": "c-5dfa309ccabf40759",
      "Status": "ACTIVE",
      "EgressConfig": {
        "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:025066256552:resourceconfiguration/rcfg-079259b27a357a190"
      },
      "EgressType": "VPC",
      "ServiceManagedEgressIpAddresses": null,
      "SftpConfig": { 
         "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ],
         "UserSecretId": "aws/transfer/sftp-connector1"
      },
      "Url": "sftp://my.sftp.server.com:22"
   }
}
```

トラフィック`ServiceManagedEgressIpAddresses`は AWS マネージドインフラストラクチャではなく VPC を通過するため、VPC 出力タイプのコネクタでは は null であることに注意してください。

## ステップ 3: SFTP コネクタを使用してファイルを送信および取得する
<a name="use-connector-tutorial"></a>

わかりやすくするために、Amazon S3 バケットにファイルがすでにあることを前提としています。

**注記**  
このチュートリアルでは、レプリケート元とレプリケート先の両方のストレージロケーションに Amazon S3 バケットを使用しています。SFTP サーバーが Amazon S3 ストレージを使用しない場合、次のコマンド`sftp-server-storage-east`で表示される場所であれば、パスを SFTP サーバーからアクセスできるファイルの場所へのパスに置き換えることができます。
+ Amazon S3 ストレージ`SEND-to-SERVER.txt`から という名前のファイルを SFTP サーバーに送信します。
+ SFTP サーバー`RETRIEVE-to-S3.txt`から Amazon S3 ストレージに という名前のファイルを取得します。

**注記**  
次のコマンドで、{{connector-id}} をコネクタ ID に置き換えます。

まず、Amazon S3 バケットからリモート SFTP サーバーにファイルを送信します。コマンドプロンプトから、次のコマンドを実行します。

```
aws transfer start-file-transfer --connector-id c-{{connector-id}} --send-file-paths "/sftp-server-storage-east/SEND-to-SERVER.txt" /
   --remote-directory-path "/sftp-server-storage-east/incoming"
```

これで、`sftp-server-storage-east`バケットは次のようになります。

![新しく転送されたファイルを含む SFTP サーバーバケット。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/sftp-tutorial-bucket-2.png)


ファイルが正常に表示されない場合は、CloudWatch ログを確認してください。

**CloudWatch ログを確認するには**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) で Amazon CloudWatch コンソールを開きます。

1. 左側のナビゲーションメニューから**ロググループ**を選択します。

1. 検索バーにコネクタ ID を入力して、ログを検索します。

1. 検索から返されるログストリームを選択します。

1. 最新のログエントリを展開します。

成功すると、ログエントリは次のようになります。

```
{
    "operation": "SEND",
    "timestamp": "2023-12-18T15:26:57.346283Z",
    "connector-id": "{{connector-id}}",
    "transfer-id": "{{transfer-id}}",
    "file-transfer-id": "{{transfer-id}}/{{file-transfer-id}}",
    "url": "sftp://{{server-id}}.server.transfer.us-east-1.amazonaws.com",
    "file-path": "/sftp-server-storage-east/SEND-to-SERVER.txt",
    "status-code": "COMPLETED",
    "start-time": "2023-12-18T15:26:56.915864Z",
    "end-time": "2023-12-18T15:26:57.298122Z",
    "account-id": "{{account-id}}",
    "connector-arn": "arn:aws:transfer:us-east-1:{{account-id}}:connector/{{connector-id}}",
    "remote-directory-path": "/sftp-server-storage-east/incoming"
}
```

ファイル転送が失敗した場合、ログエントリには問題を指定するエラーメッセージが含まれます。エラーの一般的な原因は、IAM アクセス許可の問題と誤ったファイルパスです。

次に、SFTP サーバーから Amazon S3 バケットにファイルを取得します。コマンドプロンプトから、次のコマンドを実行します。

```
aws transfer start-file-transfer --connector-id c-{{connector-id}} --retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/sftp-server-storage-east/incoming"
```

転送が成功すると、Amazon S3 バケットには、次に示すように転送されたファイルが含まれます。

![新しく転送されたファイルを含む Amazon S3 バケット。](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/sftp-tutorial-bucket-1.png)


成功すると、ログエントリは次のようになります。

```
{
    "operation": "RETRIEVE",
    "timestamp": "2023-12-18T15:36:40.017800Z",
    "connector-id": "c-{{connector-id}}",
    "transfer-id": "{{transfer-id}}",
    "file-transfer-id": "{{transfer-id}}/{{file-transfer-id}}",
    "url": "sftp://s-{{server-id}}.server.transfer.us-east-1.amazonaws.com",
    "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt",
    "status-code": "COMPLETED",
    "start-time": "2023-12-18T15:36:39.727626Z",
    "end-time": "2023-12-18T15:36:39.895726Z",
    "account-id": "{{account-id}}",
    "connector-arn": "arn:aws:transfer:us-east-1:{{account-id}}:connector/c-{{connector-id}}",
    "local-directory-path": "/sftp-server-storage-east/incoming"
}
```

### VPC 出力タイプのコネクタのトラブルシューティング
<a name="vpc-connector-troubleshooting"></a>

VPC 出力タイプコネクタで問題が発生した場合は、以下を確認してください。
+ **コネクタのステータスは保留中**です。VPC コネクタの DNS 解決には数分かかる場合があります。接続を試みる前に、ステータスが ACTIVE になるまで待ちます。
+ **接続タイムアウト**: セキュリティグループが Resource Gateway サブネットとターゲット SFTP サーバー間のトラフィックをポート 22 で許可していることを確認します。
+ **リソース設定エラー**: リソース設定が正しい IP アドレスまたは DNS 名を指し、リソースゲートウェイが SFTP サーバー (プライベートエンドポイントの場合) と同じ VPC にあることを確認します。詳細については、「*Amazon VPC Lattice ユーザーガイド*」の「[Resource configurations](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)」を参照してください。
+ **パブリックエンドポイントの問題**: パブリックエンドポイントの場合は、リソース設定で IP アドレスではなく DNS 名を使用していることを確認してください。VPC にアウトバウンドインターネットアクセス用の NAT ゲートウェイがあることを確認します。
+ **AZ の可用性**: リソースゲートウェイには、少なくとも 2 つのアベイラビリティーゾーンにサブネットが必要です。すべての AZs VPC Lattice をサポートしているわけではありません。リージョンでサポートされている AZs を確認してください。

**VPC 出力タイプのコストに関する考慮事項:**
+ VPC Lattice は、リソースプロバイダーとしてのデータ処理に対して 0.006 USD/GB を課金します (VPC Lattice から直接請求されます)
+ AWS Transfer Family が 0.01 USD/GB のリソースコンシューマーコストを吸収 (最初の 1 PB)
+ VPC 経由のパブリックエンドポイントの場合、追加の NAT Gateway とデータ転送料金が適用される場合があります
+ 標準の 0.40 USD/GB のデータ処理料金を超える追加の Transfer Family 料金はかかりません

## リモート SFTP サーバーとして使用する Transfer Family サーバーを作成する手順
<a name="non-standard-tutorial-procedures"></a>

以下に、このチュートリアルのリモート SFTP サーバーとして機能する Transfer Family サーバーを作成する手順の概要を示します。次の点に注意してください。
+ Transfer Family サーバーを使用してリモート SFTP サーバーを表します。一般的な SFTP コネクタユーザーには、独自のリモート SFTP サーバーがあります。「[Transfer Family SFTP サーバーとユーザーを作成する](#sftp-tutorial-server)」を参照してください。
+ Transfer Family サーバーを使用しているため、サービスマネージド SFTP ユーザーも使用しています。また、わかりやすくするために、このユーザーが Transfer Family サーバーにアクセスするために必要なアクセス許可を、コネクタを使用するために必要なアクセス許可と組み合わせました。ここでも、ほとんどの SFTP コネクタのユースケースには、Transfer Family サーバーに関連付けられていない個別の SFTP ユーザーがあります。「[Transfer Family SFTP サーバーとユーザーを作成する](#sftp-tutorial-server)」を参照してください。
+ このチュートリアルでは、リモート SFTP サーバーに Amazon S3 ストレージを使用しているため、あるバケットから別のバケットにファイルを転送できるように**sftp-server-storage-east**、2 番目のバケット を作成する必要があります。

### Transfer Family SFTP サーバーとユーザーを作成する
<a name="sftp-tutorial-server"></a>

ユーザーを持つ SFTP サーバーが既にあり、このサーバーを使用してファイルを送受信できるため、ほとんどのユーザーは Transfer Family SFTP サーバーとユーザーを作成する必要はありません。ただし、このチュートリアルでは、簡単にするために、Transfer Family サーバーを使用してリモート SFTP サーバーとして機能します。

「」で説明されている手順に従ってサーバー[SFTP 対応サーバーの作成](create-server-sftp.md)を作成し、ユーザー[ステップ 3: サービスマネージドユーザーを追加する](getting-started.md#getting-started-user)を追加します。チュートリアルで使用しているユーザーの詳細は次のとおりです。
+ サービスマネージドユーザー を作成します`sftp-testuser`。
  + ホームディレクトリを に設定する `/sftp-server-storage-east/sftp-testuser`
  + ユーザーを作成するときは、パブリックキーを保存します。その後、Secrets Manager でシークレットを作成するときに、対応するプライベートキーを指定する必要があります。
+ ロール: `sftp-connector-role`。このチュートリアルでは、SFTP ユーザーと SFTP コネクタの両方に同じ IAM ロールを使用しています。組織のコネクタを作成するときに、個別のユーザーロールとアクセスロールがある場合があります。
+ サーバーホストキー: コネクタの作成時にサーバーホストキーを使用する必要があります。このキーを取得するには、サーバー`ssh-keyscan`で を実行します。たとえば、サーバー ID が で`s-1111aaaa2222bbbb3`、そのエンドポイントが の場合`us-east-1`、次のコマンドはサーバーホストキーを取得します。

  ```
  ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com
  ```

  [ステップ 2: SFTP コネクタを作成してテストする](#create-connector-tutorial) 手順で貼り付ける必要があるため、このテキストをどこかにコピーします。

### ユーザーロールとアクセスロールの組み合わせ
<a name="sftp-tutorial-combined-role"></a>

このチュートリアルでは、単一の結合ロールを使用しています。このロールは、SFTP ユーザーとコネクタへのアクセスの両方に使用されます。次の例には、チュートリアルのタスクを実行する場合に備えて、このロールの詳細が含まれています。

次の例では、Amazon S3 の 2 つのバケットと、Secrets Manager に保存`aws/transfer/sftp-connector1`されている という名前のシークレットにアクセスするために必要なアクセス許可を付与します。このチュートリアルでは、このロールの名前は です`sftp-connector-role`。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::sftp-server-storage-east",
                "arn:aws:s3:::sftp-server-storage-east"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": [
                "arn:aws:s3:::sftp-server-storage-east/*",
                "arn:aws:s3:::sftp-server-storage-east/*"
            ]
        },
        {
            "Sid": "GetConnectorSecretValue",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:{{111122223333}}:secret:aws/transfer/sftp-connector1-{{6RandomCharacters}}"
        }
    ]
}
```

Transfer Family のロールの作成の詳細については、「」で説明されている手順に従ってロール[ユーザーロールの作成](requirements-roles.md#role-create-procedure)を作成します。