翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AS2 設定の設定
このチュートリアルでは、 で Applicability Statement 2 (AS2) 設定を設定する方法について説明します AWS Transfer Family。ここで説明するステップを完了すると、サンプル取引パートナーからのAS2メッセージを受け入れる準備ができた AS2対応サーバーが完成します。また、サンプル取引先にAS2メッセージを送信するために使用できるコネクタもあります。
注記
サンプルセットアップの一部では、 AWS Command Line Interface () を使用しますAWS CLI。をまだインストールしていない場合は AWS CLI、AWS Command Line Interface 「 ユーザーガイド」の「 の最新バージョンのインストールまたは更新 AWS CLI」を参照してください。
-
自分用と取引相手用の証明書を作成します。使用できる既存の証明書がある場合は、このセクションをスキップできます。
このプロセスは、「ステップ 1: の証明書を作成する AS2」で説明されています。
-
AS2 プロトコルを使用する AWS Transfer Family サーバーを作成します。オプションで、サーバーに Elastic IP アドレスを追加してインターネットに接続できるようにすることもできます。
このプロセスは、「ステップ 2: AS2プロトコルを使用する Transfer Family サーバーを作成する」で説明されています。
注記
Transfer Family サーバーは、インバウンド転送専用に作成する必要があります。アウトバウンド転送のみを行う場合は、Transfer Family サーバーは必要ありません。
-
ステップ 1 で作成した証明書をインポートします。
このプロセスは、「ステップ 3: 証明書を Transfer Family 証明書リソースとしてインポートする」で説明されています。
-
取引相手を設定するには、ローカルプロファイルとパートナープロファイルを作成します。
このプロセスは、「ステップ 4: 自分と取引相手のプロフィールを作成する」で説明されています。
-
自分と取引相手との間で契約を作成してください。
このプロセスは、「ステップ 5: 自分とパートナーとの間で契約を作成する」で説明されています。
注記
契約を作成する必要があるのはインバウンド転送の場合のみです。アウトバウンド転送のみを行う場合は、契約は必要ありません。
-
自分と取引相手との間でコネクタを作成してください。
このプロセスは、「ステップ 6: 自分とパートナーとの間でコネクタを作成する」で説明されています。
注記
コネクタはアウトバウンド転送専用に作成する必要があります。インバウンド転送のみを行う場合は、コネクタは必要ありません。
-
AS2 ファイル交換をテストします。
このプロセスは、「ステップ 7: Transfer Family を使用してファイル交換AS2をテストする」で説明されています。
このステップを完了したら、以下を実行できます。
-
Transfer Family
start-file-transfer
AWS Command Line Interface (AWS CLI) コマンドを使用して、リモートAS2で有効なパートナーサーバーにファイルを送信します。 -
仮想プライベートクラウド (VPC) エンドポイントを介して、ポート 5080 のリモートAS2対応パートナーサーバーからファイルを受信します。
ステップ 1: の証明書を作成する AS2
AS2 交換のどちらの当事者にも X.509 証明書が必要です。これらの証明書は好きな方法で作成できます。このトピックでは、コマンドラインから OpenSSL
注記
AS2 証明書のキー長は、少なくとも 2048 ビット、最大 4096 ビットである必要があります。
パートナーとファイルを転送する場合は、次の点に注意してください。
-
証明書はプロファイルに添付できます。証明書にはパブリックキーまたはプライベートキーが含まれます。
-
取引相手がパブリックキーを送り、自分のパブリックキーを彼らに送ります。
-
取引相手はパブリックキーでメッセージを暗号化し、プライベートキーで署名します。逆に、パートナーのパブリックキーでメッセージを暗号化し、自分のプライベートキーで署名します。
注記
でキーを管理する場合はGUI、 Portecle
は、使用できる 1 つのオプションです。
証明書の例を生成するには
重要
パートナーにプライベートキーを送らないでください。この例では、一方の当事者用に自己署名パブリックキーとプライベートキーのセットを生成します。テスト目的で両方の取引相手として行動する場合は、これらの手順を繰り返して、取引相手ごとに 1 つずつ、合計 2 つのキーセットを生成できます。この場合、2 つのルート認証局 () を生成する必要はありませんCAs。
-
次のコマンドを実行して、2048 ビット長のモジュラスを持つRSAプライベートキーを生成します。
/usr/bin/openssl genrsa -out root-ca-key.pem 2048
-
次のコマンドを実行して、
root-ca-key.pem
ファイルを使用して自己署名証明書を作成します。/usr/bin/openssl req \ -x509 -new -nodes -sha256 \ -days 1825 \ -subj "/C=
US
/ST=MA
/L=Boston
/O=TransferFamilyCustomer
/OU=IT-dept
/CN=ROOTCA" \ -key root-ca-key.pem \ -out root-ca.pem-subj
引数は、次の値で構成されます。名前 説明 C
国コード 組織が所在する国を表す 2 文字のコード。 ST
州、地域、または都道府県 あなたが所属する組織の所在地の州または県。(この場合、リージョンは AWS リージョンを参照しません。) L
市区町村 あなたが所属する組織の所在地の市区町村。 O
[Organization name] (組織名) LLC、Corp などのサフィックスを含む組織の正式名。 OU
部門名 この証明書を扱う組織内の部門。 CN
共通名または完全修飾ドメイン名 (FQDN) このケースでは、ルート証明書を作成するので、値は ROOTCA
です。これらの例では、CN
を使用して証明書の目的を説明しています。 -
ローカルプロファイル用の署名キーと暗号化キーを作成します。
/usr/bin/openssl genrsa -out signing-key.pem 2048 /usr/bin/openssl genrsa -out encryption-key.pem 2048
注記
Open などの一部の AS2対応サーバーではAS2、署名と暗号化の両方に同じ証明書を使用する必要があります。この場合、両方の目的で同じプライベートキーと証明書をインポートできます。そのためには、前の 2 つのコマンドの代わりに次のコマンドを実行します。
/usr/bin/openssl genrsa -out signing-and-encryption-key.pem 2048
-
次のコマンドを実行して、署名するルートキーの Certificate Signing Requests (CSRs) を作成します。
/usr/bin/openssl req -new -key signing-key.pem -subj \ "/C=
US
/ST=MA
/L=Boston
/O=TransferFamilyCustomer
/OU=IT-dept
/CN=Signer" -out signing-key-csr.pem/usr/bin/openssl req -new -key encryption-key.pem -subj \ "/C=
US
/ST=MA
/L=Boston
/O=TransferFamilyCustomer
/OU=IT-dept
/CN=Encrypter" -out encryption-key-csr.pem -
次に、
signing-cert.conf
ファイルとencryption-cert.conf
ファイルを作成する必要があります。-
テキストエディタを使用して、
signing-cert.conf
ファイルを作成し、次の内容を記述します。authorityKeyIdentifier=keyid,issuer keyUsage = digitalSignature, nonRepudiation
-
テキストエディタを使用して、
encryption-cert.conf
ファイルを作成し、次の内容を記述します。authorityKeyIdentifier=keyid,issuer keyUsage = dataEncipherment
-
-
最後に、以下のコマンドを実行して署名付き証明書を作成します。
/usr/bin/openssl x509 -req -sha256 -CAcreateserial -days 1825 -in signing-key-csr.pem -out signing-cert.pem -CA \ root-ca.pem -CAkey root-ca-key.pem -extfile signing-cert.conf
/usr/bin/openssl x509 -req -sha256 -CAcreateserial -days 1825 -in encryption-key-csr.pem -out encryption-cert.pem \ -CA root-ca.pem -CAkey root-ca-key.pem -extfile encryption-cert.conf
ステップ 2: AS2プロトコルを使用する Transfer Family サーバーを作成する
この手順では、Transfer Family を使用して AS2対応サーバーを作成する方法について説明します AWS CLI。
注記
サンプルステップの多くは、ファイルからパラメータを読み込むコマンドを使用しています。ファイルを使用してパラメータを読み込む方法について詳しくは、「ファイルからパラメータをロードする方法」を参照してください。
代わりにコンソールを使用する場合は、「Transfer Family コンソールを使用してAS2サーバーを作成する」を参照してください。
SFTP または FTPS AWS Transfer Family サーバーを作成する方法と同様に、 create-server
AWS CLI コマンドの --protocols AS2
パラメータを使用して AS2対応サーバーを作成します。現在、Transfer Family はVPC、エンドポイントタイプと Amazon S3 ストレージのみをAS2プロトコルでサポートしています。
create-server
コマンドを使用して Transfer Family 用の AS2対応サーバーを作成すると、VPCエンドポイントが自動的に作成されます。このエンドポイントは、AS2メッセージを受け入れることができるようにTCPポート 5080 を公開します。
VPC エンドポイントをインターネットに公開する場合は、Elastic IP アドレスをVPCエンドポイントに関連付けることができます。
この指示書を使用するには、次が必要です。
-
の ID VPC (vpc-abcdef01 など)。
-
VPC サブネットIDsの (例えば、subnet-abcdef01、subnet-subnet-abcdef01、subnet-021345ab など)。
-
取引相手からのTCPポート 5080 での受信トラフィックを許可する 1 つ以上のIDsセキュリティグループ (例: sg-1234567890abcdef0 および sg-abcdef01234567890)。
-
(オプション) VPCエンドポイントに関連付ける Elastic IP アドレス。
-
取引先が VPC経由で に接続されていない場合はVPN、インターネットゲートウェイが必要です。詳細については、「Amazon VPCユーザーガイド」の「インターネットゲートウェイを使用してインターネットに接続する」を参照してください。
AS2対応サーバーを作成するには
-
以下のコマンドを実行します。
を、ユーザー自身の情報に置き換えます。user input placeholder
aws transfer create-server --endpoint-type VPC \ --endpoint-details VpcId=
vpc-abcdef01
,SubnetIds=subnet-abcdef01
,subnet-abcdef01
,subnet- 021345ab
,SecurityGroupIds=sg-abcdef01234567890
,sg-1234567890abcdef0
--protocols AS2 \ --protocol-details As2Transports=HTTP -
(オプション) VPCエンドポイントを公開できます。Elastic IP アドレスは、
update-server
オペレーションを通じてのみ Transfer Family サーバーにアタッチできます。以下のコマンドはサーバーを停止し、Elastic IP アドレスで更新してから再起動します。aws transfer stop-server --server-id
your-server-id
aws transfer update-server --server-id
your-server-id
--endpoint-details \ AddressAllocationIds=eipalloc-abcdef01234567890
,eipalloc-1234567890abcdef0
,eipalloc-abcd012345ccccccc
aws transfer start-server --server-id
your-server-id
この
start-server
コマンドは、サーバーのパブリック IP アドレスを含むDNSレコードを自動的に作成します。取引相手にサーバーへのアクセスを許可するには、次の情報を提供します。この場合、
は AWS リージョンのことを指します。your-region
s-
your-server-id
.server.transfer.your-region
.amazonaws.com取引相手URLに提供する のは、次のとおりです。
http://s-
your-server-id
.server.transfer.your-region
.amazonaws.com:5080 -
AS2が有効なサーバーにアクセスできるかどうかをテストするには、次のコマンドを使用します。VPC エンドポイントのプライベートDNSアドレスまたはパブリックエンドポイント (Elastic IP アドレスをエンドポイントに関連付ける場合) からサーバーにアクセスできることを確認してください。
サーバーが正しく設定されていれば、接続は成功します。ただし、有効なAS2メッセージを送信していないため、HTTPステータスコード 400 (Bad Request) レスポンスを受け取ります。
-
パブリックエンドポイント (前のステップで Elastic IP アドレスを関連付けた場合) では、サーバー ID とリージョンを代入して以下のコマンドを実行します。
curl -vv -X POST http://s-
your-server-id
.transfer.your-region
.amazonaws.com:5080 -
内で接続する場合はVPC、次のコマンドを実行してVPCエンドポイントのプライベートDNS名を検索します。
aws transfer describe-server --server-id s-
your-server-id
この
describe-server
コマンドは、VpcEndpointId
パラメータでVPCエンドポイント ID を返します。次のコマンドを実行するには、この値を使用します。aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-
your-vpc-endpoint-id
describe-vpc-endpoints
コマンドは、複数のDnsName
パラメータを含むDNSEntries
配列を返します。次のコマンドでリージョンDNS名 (アベイラビリティーゾーンを含まない名前) を使用します。curl -vv -X POST http://vpce-
your-vpce
.vpce-svc-your-vpce-svc
.your-region
.vpce.amazonaws.com:5080例えば、次のコマンドでは、前のコマンドのプレースホルダーのサンプル値が表示されます。
curl -vv -X POST http://vpce-0123456789abcdefg-fghij123.vpce-svc-11111aaaa2222bbbb.us-east-1.vpce.amazonaws.com:5080
-
-
(オプション) ロギングロールを設定します。Transfer Family は、構造化されたJSON形式で送受信されたメッセージのステータスを Amazon CloudWatch ログに記録します。Transfer Family にアカウントの CloudWatch ログへのアクセスを許可するには、サーバーでログ記録ロールを設定する必要があります。
を信頼する AWS Identity and Access Management (IAM) ロールを作成し
transfer.amazonaws.com
、AWSTransferLoggingAccess
マネージドポリシーをアタッチします。詳細については、「IAM ロールとポリシーを作成する」を参照してください。作成したIAMロールの Amazon リソースネーム (ARN) を書き留め、次のupdate-server
コマンドを実行してサーバーに関連付けます。aws transfer update-server --server-id
your-server-id
--logging-role arn:aws:iam::your-account-id
:role/logging-role-name
注記
ログ記録ロールはオプションですが、メッセージのステータスを確認したり、設定上の問題をトラブルシューティングしたりできるように設定することを強くお勧めします。
ステップ 3: 証明書を Transfer Family 証明書リソースとしてインポートする
この手順では、 AWS CLIを使用して証明書をインポートする方法について説明します。代わりに Transfer Family コンソールを使用する場合は、AS2 証明書をインポートする を参照してください。
ステップ 1 で作成した署名用証明書と暗号化証明書をインポートするには、次の import-certificate
コマンドを実行します。暗号化と署名に同じ証明書を使用している場合は、同じ証明書を 2 回インポートします (1 回目は SIGNING
用、もう 1 回は ENCRYPTION
用)。
aws transfer import-certificate --usage SIGNING --certificate file://signing-cert.pem \ --private-key file://signing-key.pem --certificate-chain file://root-ca.pem
このコマンドは署名の CertificateId
を返します。次のセクションでは、この証明書 ID を
と呼びます。my-signing-cert-id
aws transfer import-certificate --usage ENCRYPTION --certificate file://encryption-cert.pem \ --private-key file://encryption-key.pem --certificate-chain file://root-ca.pem
このコマンドは暗号化 CertificateId
を返します。次のセクションでは、この証明書 ID を
と呼びます。my-encrypt-cert-id
次に、次のコマンドを実行して、パートナーの暗号化証明書と署名用証明書をインポートします。
aws transfer import-certificate --usage ENCRYPTION --certificate file://
partner-encryption-cert
.pem \ --certificate-chain file://partner-root-ca
.pem
このコマンドはパートナーの暗号化 CertificateId
を返します。次のセクションでは、この証明書 ID を
と呼びます。partner-encrypt-cert-id
aws transfer import-certificate --usage SIGNING --certificate file://
partner-signing-cert
.pem \ --certificate-chain file://partner-root-ca
.pem
このコマンドはパートナーの署名 CertificateId
を返します。次のセクションでは、この証明書 ID を
と呼びます。partner-signing-cert-id
ステップ 4: 自分と取引相手のプロフィールを作成する
この手順では、 を使用してAS2プロファイルを作成する方法について説明します AWS CLI。代わりに Transfer Family コンソールを使用する場合は、AS2 プロファイルの作成 を参照してください。
次のコマンドを実行して、ローカルAS2プロファイルを作成します。このコマンドは、パブリックキーとプライベートキーを含む証明書を参照します。
aws transfer create-profile --as2-id
MYCORP
--profile-type LOCAL --certificate-ids \my-signing-cert-id
my-encrypt-cert-id
このコマンドはプロファイル ID を返します。次のセクションでは、この ID を
と呼びます。my-profile-id
次のコマンドを実行して、パートナープロファイルを作成します。このコマンドは、パートナーのパブリックキー証明書のみを使用します。このコマンドを使用するには、
をパートナーAS2の名前や証明書 など、独自の情報に置き換えますIDs。user input placeholders
aws transfer create-profile --as2-id
PARTNER-COMPANY
--profile-type PARTNER --certificate-ids \partner-signing-cert-id
partner-encrypt-cert-id
このコマンドはパートナーのプロファイル ID を返します。次のセクションでは、この ID を
と呼びます。partner-profile-id
注記
前のコマンドで、MYCORP
組織の名前、および PARTNER-COMPANY
と取引相手の組織の名前。
ステップ 5: 自分とパートナーとの間で契約を作成する
この手順では、 を使用してAS2アグリーメントを作成する方法について説明します AWS CLI。代わりに Transfer Family コンソールを使用する場合は、AS2 アグリーメントの作成 を参照してください。
アグリーメントには、2 つのプロファイル (ローカルとパートナー)、その証明書、および 2 つの当事者間のインバウンドAS2転送を許可するサーバー設定がまとめられています。次のコマンドを実行すると、項目を一覧表示できます。
aws transfer list-profiles --profile-type LOCAL aws transfer list-profiles --profile-type PARTNER aws transfer list-servers
このステップには、バケットとの間で読み取り/書き込みアクセスが可能な Amazon S3 バケットとIAMロールが必要です。このロールを作成する手順はSFTP、Transfer Family 、、および FTPSプロトコルの場合と同じでありFTP、 で利用できますIAM ロールとポリシーを作成する。
契約を作成するには、次のアイテムが必要です。
-
Amazon S3 バケット名 (指定されている場合はオブジェクトプレフィックスも)
-
バケットにアクセスできるIAMロールARNの 。
-
Transfer Family サーバー ID
-
プロファイル ID とパートナーのプロファイル ID
次のコマンドを実行して契約を作成します。
aws transfer create-agreement --description "
ExampleAgreementName
" --server-idyour-server-id
\ --local-profile-idyour-profile-id
--partner-profile-idyour-partner-profile-id
--base-directory /DOC-EXAMPLE-DESTINATION-BUCKET
/AS2-inbox
\ --access-role arn:aws:iam::111111111111
:role/TransferAS2AccessRole
成功した場合、このコマンドは契約の ID を返します。その後、次のコマンドを使用して契約の詳細を表示できます。
aws transfer describe-agreement --agreement-id
agreement-id
--server-idyour-server-id
ステップ 6: 自分とパートナーとの間でコネクタを作成する
この手順では、 を使用してAS2コネクタを作成する方法について説明します AWS CLI。代わりに Transfer Family コンソールを使用する場合は、AS2 コネクタの設定 を参照してください。
StartFileTransfer
API オペレーションを使用して、コネクタを使用して Amazon S3 に保存されているファイルを取引先のAS2エンドポイントに送信できます。次のコマンドを実行すると、先ほど作成したプロファイルを見つけることができます。
aws transfer list-profiles
コネクタを作成するときは、パートナーのAS2サーバー を指定する必要がありますURL。次の テキストを testAS2Config.json
という名前のファイルにコピーします。
{ "Compression": "ZLIB", "EncryptionAlgorithm": "AES256_CBC", "LocalProfileId": "
your-profile-id
", "MdnResponse": "SYNC", "MdnSigningAlgorithm": "DEFAULT", "MessageSubject": "Your Message Subject
", "PartnerProfileId": "partner-profile-id
", "SigningAlgorithm": "SHA256" }
注記
ではEncryptionAlgorithm
、アルゴリズムは弱い暗号化DES_EDE3_CBC
アルゴリズムであるため、それを必要とするレガシークライアントをサポートする必要がある場合を除き、アルゴリズムを指定しないでください。
その後、次のコマンドを実行してコネクタを作成します。
aws transfer create-connector --url "http://
partner-as2-server-url
" \ --access-roleyour-IAM-role-for-bucket-access
\ --logging-role arn:aws:iam::your-account-id
:role/service-role/AWSTransferLoggingAccess \ --as2-config file:///path/to
/testAS2Config.json
ステップ 7: Transfer Family を使用してファイル交換AS2をテストする
取引相手からファイルを受け取ります
パブリック Elastic IP アドレスをVPCエンドポイントに関連付けると、Transfer Family はパブリック IP アドレスを含むDNS名前を自動的に作成します。サブドメインは AWS Transfer Family 、サーバー ID ( 形式) ですs-1234567890abcdef0
。次の形式で、取引相手URLにサーバーを提供します。
http://s-
1234567890abcdef0
.server.transfer.us-east-1
.amazonaws.com:5080
パブリック Elastic IP アドレスをVPCエンドポイントに関連付けていない場合は、ポート 5080 の取引先HTTPPOSTからのAS2メッセージを受け入れることができるVPCエンドポイントのホスト名を検索します。VPC エンドポイントの詳細を取得するには、次のコマンドを使用します。
aws transfer describe-server --server-id s-
1234567890abcdef0
例えば、前のコマンドがVPCエンドポイント ID を返すとしますvpce-1234abcd5678efghi
。次に、次のコマンドを使用してDNS名前を取得します。
aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-1234abcd5678efghi
このコマンドは、次のコマンドを実行するために必要なVPCエンドポイントのすべての詳細を返します。
DNS 名前はDnsEntries
配列に一覧表示されます。VPC エンドポイントにアクセスするにはVPC、取引相手が 内にある必要があります ( AWS PrivateLink または などVPN)。VPC エンドポイントURLを次の形式でパートナーに提供します。
http://vpce-
your-vpce-id
.vpce-svc-your-vpce-svc-id
.your-region
.vpce.amazonaws.com:5080
例えば、前のコマンドのプレースホルダーのサンプル値を次URLに示します。
http://vpce-0123456789abcdefg-fghij123.vpce-svc-11111aaaa2222bbbb.us-east-1.vpce.amazonaws.com:5080
この例では、成功した転送は、ステップ 5: 自分とパートナーとの間で契約を作成する で指定した base-directory
パラメータで指定された場所に保存されます。myfile1.txt
および myfile2.txt
という名前のファイルを正常に受信すると、ファイルは /
として保存されます。ここでは、ファイルは path-defined-in-the-agreement
/processed/original_filename.messageId.original_extension
/
と DOC-EXAMPLE-DESTINATION-BUCKET
/AS2-inbox/processed/myfile1.messageId
.txt/
として保存されます。DOC-EXAMPLE-DESTINATION-BUCKET
/AS2-inbox/processed/myfile2.messageId
.txt
Transfer Family サーバーの作成時にログ記録ロールを設定した場合は、 CloudWatch ログでAS2メッセージのステータスを確認することもできます。
取引相手にファイルを送信します
Transfer Family を使用してAS2メッセージを送信するには、次の start-file-transfer
AWS Command Line Interface (AWS CLI) コマンドに示すように、コネクタ ID とファイルへのパスを参照します。
aws transfer start-file-transfer --connector-id c-
1234567890abcdef0
\ --send-file-paths "/DOC-EXAMPLE-SOURCE-BUCKET
/myfile1.txt
" "/DOC-EXAMPLE-SOURCE-BUCKET
/myfile2.txt
"
コネクタの詳細情報を取得するには、次のコマンドを実行しする:
aws transfer list-connectors
list-connectors
コマンドは、コネクタのコネクタ IDs、URLs、および Amazon リソースネーム (ARNs) を返します。
特定のコネクタのプロパティを返すには、使用する ID を指定して以下のコマンドを実行します。
aws transfer describe-connector --connector-id
your-connector-id
describe-connector
コマンドは、、ロール、プロファイルURL、メッセージ処理通知 (MDNs)、タグ、モニタリングメトリクスなど、コネクタのすべてのプロパティを返します。
パートナーが正常にファイルを受け取ったことを確認するには、 JSONおよび MDN ファイルを表示します。これらのファイルには、ファイル名と場所 で説明されている規則に従って名前が付けられます。コネクタの作成時にログ記録ロールを設定した場合は、 CloudWatch ログにAS2メッセージのステータスを確認することもできます。