VPC ベースの出力で SFTP コネクタを作成する - AWS Transfer Family

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

VPC ベースの出力で SFTP コネクタを作成する

このトピックでは、VPC 接続で SFTP コネクタを作成するstep-by-stepについて説明します。VPC_LATTICE 対応コネクタは、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 リソースアクセスが仮想プライベートクラウドを介した安全な接続をどのように実現するかを示しています。

VPC_LATTICE 対応 SFTP コネクタの前提条件

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

VPC ベースの接続の仕組み

VPC Lattice を使用すると、VPC リソースを他の AWS サービスと安全に共有できます。 はサービスネットワーク AWS Transfer Family を使用してリソース共有プロセスを簡素化します。主なコンポーネントは次のとおりです。

  • リソースゲートウェイ: VPC へのアクセスポイントとして機能します。これは、最低 2 つのアベイラビリティーゾーンを使用して VPC に作成します。

  • リソース設定: 接続する SFTP サーバーのプライベート IP アドレスまたはパブリック DNS 名が含まれます。

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

必要なセットアップ手順

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

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

  3. リソース設定: VPC Lattice create-resource-configuration コマンドを使用して、ターゲット SFTP サーバーを表すリソース設定を作成します。次のいずれかを指定できます。

    • プライベートエンドポイントのプライベート IP アドレス

    • パブリックエンドポイントのパブリック DNS 名 (IP アドレスはパブリックエンドポイントではサポートされていません)

  4. 認証情報: 「」の説明 AWS Secrets Manager に従って、SFTP ユーザー認証情報を に保存しますSecrets Manager に SFTP コネクタの認証情報を保存する

重要

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

VPC リソース設定の詳細については、「Amazon VPC Lattice ユーザーガイド」の「リソース設定」を参照してください。

注記

SFTP コネクタの VPC 接続は、Amazon VPC Lattice リソース AWS リージョン が利用可能な で使用できます。詳細については、「VPC Lattice に関するFAQs」を参照してください。アベイラビリティーゾーンのサポートはリージョンによって異なり、リソースゲートウェイには最低 2 つのアベイラビリティーゾーンが必要です。

VPC_LATTICE 対応 SFTP コネクタを作成する

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

Console
VPC_LATTICE 対応 SFTP コネクタを作成するには
  1. https://console.aws.amazon.com/transfer/ で AWS Transfer Family コンソールを開きます。

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

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

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

  4. コネクタ設定を完了します。

    • アクセスロールで、使用する (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
      • このロールに信頼関係が含まれていることを確認する」ことで、ユーザーの転送要求に対応する際に、コネクタがリソースにアクセスできません。信頼関係の確立の詳細については、信頼関係を確立するには を参照してください。

      { "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 シークレットへのアクセス許可」を参照してください。

    • リソース設定 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/*" } ] }
  5. SFTPの設定」セクションで、以下の情報を入力する:

    • Connector 認証情報で、SFTP ユーザーのプライベートキーまたはパスワード AWS Secrets Manager を含む のシークレットの名前を選択します。

    • 信頼できるホストキーの場合は、外部サーバーを識別するために使用されるホストキーのパブリック部分に貼り付けるか、空のままにして後で TestConnection コマンドを使用して を設定します。

      このホストキーは VPC_LATTICE コネクタ用であるため、キー内のホスト名を削除します。

    • (オプション) 最大同時接続数で、コネクタがリモートサーバーに作成する同時接続の数を選択します (デフォルトは 5)。

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

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

  8. SFTP コネクタの作成 を選択して、VPC_LATTICE 対応 SFTP コネクタを作成します。

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

CLI

次のコマンドを使用して、VPC_LATTICE 対応 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 コネクタのステータスのモニタリング

VPC_LATTICE 対応コネクタには非同期セットアッププロセスがあります。作成後、コネクタのステータスをモニタリングします。

  • 保留中: コネクタがプロビジョニングされています。サービスネットワークのプロビジョニングが進行中であり、通常は数分かかります。

  • ACTIVE: コネクタは使用可能で、ファイルを転送できます。

  • エラー: コネクタのプロビジョニングに失敗しました。トラブルシューティング情報については、エラーの詳細を確認してください。

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

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

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

制約事項と考慮事項

  • パブリックエンドポイント: VPC 経由でパブリックエンドポイントに接続する場合は、リソース設定で DNS 名を指定する必要があります。パブリック IP アドレスはサポートされていません。

  • リージョンの可用性: VPC 接続は一部の で利用できます AWS リージョン。クロスリージョンリソース共有はサポートされていません。

  • アベイラビリティーゾーンの要件: リソースゲートウェイは、少なくとも 2 つのアベイラビリティーゾーンのサブネットに関連付ける必要があります。すべてのアベイラビリティーゾーンがすべてのリージョンで VPC Lattice をサポートしているわけではありません。

  • 接続制限: TCP 接続のアイドルタイムアウトが 350 秒のリソースあたり最大 350 接続。

コストに関する考慮事項

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

AWS Transfer Family 料金の詳細については、AWS Transfer Family 料金表ページを参照してください。

SFTP コネクタの VPC 接続の例

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

例: プライベートエンドポイント接続

この例では、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
  2. プライベート 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_LATTICE 対応コネクタを作成する
  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}
  2. コネクタのステータスが になるまでモニタリングしますACTIVE

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

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

例: VPC 経由のパブリックエンドポイント

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

前提条件
  1. VPC に Resource Gateway を作成します (プライベートエンドポイントの例と同じ)。

  2. 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 アドレスがソースとして表示されます。

例: クロスアカウントプライベートエンドポイント

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

注記

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

アカウント A (リソースプロバイダー) - リソース設定を共有する
  1. アカウント A にリソースゲートウェイとリソース設定を作成します (前の例と同じ)。

  2. 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
  2. アカウント 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 サーバーにアクセスできるようになりました。

一般的なトラブルシューティングのシナリオ

VPC_LATTICE 対応コネクタを作成する際の一般的な問題の解決策を次に示します。

  • コネクタが保留中ステータスのまま: Resource Gateway がアクティブで、サポートされているアベイラビリティーゾーンにサブネットがあることを確認します。コネクタがまだ PENDING 状態でスタックしている場合は、最初に使用したものと同じ設定パラメータUpdateConnectorを使用して を呼び出します。これにより、問題を解決する可能性のある新しいステータスイベントがトリガーされます。

  • 接続タイムアウト: セキュリティグループルールがポート 22 でのトラフィックを許可し、VPC ルーティングが正しいことを確認します。

  • DNS 解決の問題: パブリックエンドポイントの場合は、VPC に NAT ゲートウェイまたはインターネットゲートウェイを介したインターネット接続があることを確認します。

  • クロスアカウントアクセスが拒否されました: リソース共有が受け入れられ、リソース設定 ARN が正しいことを確認します。オリジンアカウントがリソース共有を作成するときに、適切なアクセス許可ポリシーがリソース設定にアタッチされている場合は、、vpc-lattice:AssociateViaAWSServicevpc-lattice:AssociateViaAWSService-EventsAndStatesvpc-lattice:CreateServiceNetworkResourceAssociation、 のアクセス許可が必要ですvpc-lattice:GetResourceConfiguration