VPC エンドポイントサービス接続を設定する - AWS Key Management Service

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

VPC エンドポイントサービス接続を設定する

このセクションのガイダンスを使用して、VPC エンドポイントサービス接続を使用する外部キーストアに必要な、AWS リソースと関連コンポーネントを作成および設定します。この接続オプションに一覧表示されているリソースは、すべての外部キーストアに必要なリソースを補足するものです。必要なリソースを作成、設定後に、外部キーストアを作成できます。

外部キーストアプロキシは、Amazon VPC 内に配置することも、AWS の外部に配置して、VPC エンドポイントサービスを使用して通信することもできます。

開始する前に、外部キーストアが必要であることを確認してください。ほとんどのお客様は、AWS KMS キーマテリアルによってバックアップされた KMS キーを使用できます。

注記

VPC エンドポイントサービスの接続に必要な要素の一部は、外部キーマネージャーに含まれている場合があります。また、ソフトウェアに追加の設定要件が存在する場合があります。このセクションの AWS リソースを作成、設定する前に、プロキシとキーマネージャーのドキュメントを参照してください。

VPC エンドポイントサービス接続の要件

外部キーストアの VPC エンドポイントサービス接続を選択する場合、次のリソースが必要です。

ネットワークのレイテンシーを最小限に抑えるには、外部キーマネージャーに最も近い、サポートされている AWS リージョン で AWS コンポーネントを作成します。可能な場合は、ネットワークラウンドトリップ時間 (RTT) が 35 ミリ秒以下のリージョンを選択します。

  • 外部キーマネージャーに接続されている Amazon VPC。2 つの異なるアベイラビリティーゾーンで 2 つ以上のプライベートサブネットが必要です。

    外部キーストアでの使用の要件を満たしている場合は、外部キーストアに既存の Amazon VPC を使用できます。複数の外部キーストアが Amazon VPC を共有できますが、各外部キーストアに独自の VPC エンドポイントサービスとプライベート DNS 名が必要です。

  • Network Load Balancerターゲットグループを備え、AWS PrivateLink を搭載した Amazon VPC エンドポイントサービスです

    エンドポイントサービスは承認を要求できません。また、許可されたプリンシパルとして AWS KMS を追加する必要があります。これにより、AWS KMS はインターフェイスエンドポイントを作成して、外部キーストアプロキシと通信できるようになります。

  • AWS リージョン 内で一意の、VPC エンドポイントサービスのプライベート DNS 名です。

    プライベート DNS 名は、上位のパブリックドメインのサブドメインである必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、xks.example.com または example.com などのパブリックドメインのサブドメインである必要があります。

    プライベート DNS 名の DNS ドメインの所有権を検証する必要があります。

  • 外部キーストアプロキシのサポートされている公開認証機関が発行した TLS 証明書。

    TLS 証明書のサブジェクト共通名 (CN) は、プライベート DNS 名と一致している必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、TLS 証明書の CN は、myproxy-private.xks.example.com または *.xks.example.com である必要があります。

外部キーストアのすべての要件については、前提条件を構成するを参照してください。

ステップ 1: Amazon VPC とサブネットを作成する

VPC エンドポイントサービス接続には、2 つ以上のプライベートサブネットをもつ外部キーマネージャーに接続された Amazon VPC が必要です。Amazon VPC を作成することも、外部キーストアの要件を満たす既存の Amazon VPC を使用することもできます。新しい Amazon VPC 作成のヘルプについては、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC を作成する」を参照してください。

Amazon VPC の要件

VPC エンドポイントサービス接続を使用して外部キーストアを操作するには、Amazon VPC に次のプロパティが必要です。

  • 外部キーストアと同じ AWS アカウント、およびサポートされているリージョンに存在する必要があります。

  • それぞれ異なるアベイラビリティーゾーンに、2 つ以上のプライベートサブネットが必要です。

  • Amazon VPC のプライベート IP アドレス範囲が、外部キーマネージャーをホストするデータセンターのプライベート IP アドレス範囲と重複しないようにする必要があります。

  • すべてのコンポーネントが IPv4 を使用する必要があります。

Amazon VPC を外部キーストアプロキシに接続するには、多数の方法があります。必要なパフォーマンスとセキュリティのニーズを満たすオプションを選択します。リストについては、「VPC を他のネットワークに接続する」および「Network-to-Amazon VPC の接続オプション」を参照してください。詳細については、「AWS Direct Connect」、および「AWS Site-to-Site VPN ユーザーガイド」を参照してください。

外部キーストア用 Amazon VPC を作成する

次の手順に従って、外部キーストア用の Amazon VPC を作成します。Amazon VPC は、VPC エンドポイントサービス接続オプションを選択した場合にのみ必要です。外部キーストアの要件を満たす既存の Amazon VPC を使用できます。

次の必須値を使用して、「VPC、サブネット、他の VPC リソースを作成する」トピックの手順に従います。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

フィールド
IPv4 CIDR ブロック VPC の IP アドレスを入力します。Amazon VPC のプライベート IP アドレス範囲が、外部キーマネージャーをホストするデータセンターのプライベート IP アドレス範囲と重複しないようにする必要があります。
アベイラビリティーゾーン数 (AZ) 2 以上
パブリックサブネット数

何も必要ありません (0)

プライベートサブネット数 AZ ごとに 1 つ
NAT ゲートウェイ 何も必要ありません。
VPC エンドポイント 何も必要ありません。
[Enable DNS hostnames] (DNS ホスト名を有効化) 可能
DNS 解決を有効にする 可能

必ず VPC 通信をテストしてください。例えば、外部キーストアプロキシが Amazon VPC にない場合は、Amazon VPC に Amazon EC2 インスタンスを作成し、Amazon VPC が外部キーストアプロキシと通信できることを検証します。

VPC を外部キーマネージャーに接続する

Amazon VPC がサポートするネットワーク接続オプションのいずれかを使用して、外部キーマネージャーをホストするデータセンターに VPC を接続します。VPC 内の Amazon EC2 インスタンス (または、VPC 内にある場合は外部キーストアプロキシ) がデータセンターおよび外部キーマネージャーと通信できることを確認します。

ステップ 2: ターゲットグループを作成する

必要な VPC エンドポイントサービスを作成する前に、必要なコンポーネント、Network Load Balancer (NLB)、ターゲットグループを作成します。Network Load Balancer (NLB) は、リクエストを複数の正常なターゲットに分散し、いずれのターゲットもリクエストを処理できるようにします。このステップでは、外部キーストアプロキシ用に 2 つ以上のホストを含むターゲットグループを作成し、そのターゲットグループに IP アドレスを登録します。

次の必須値を使用して、「ターゲットグループの設定」トピックの手順に従います。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

フィールド
対象タイプ IP アドレス
[プロトコル] TCP
ポート

443

IP アドレスタイプ IPv4
VPC 外部キーストアの VPC エンドポイントサービスを作成する VPC を選択します。
ヘルスチェックプロトコルとパス

ヘルスチェックプロトコルとパスは、外部キーストアプロキシの設定に応じて異なります。外部キーマネージャーまたは外部キーストアプロキシのドキュメントを参照してください。

ターゲットグループのヘルスチェック設定に関する一般情報は、Elastic Load Balancing ユーザーガイドの Network Load Balancer の項目にある「ターゲットグループのヘルスチェック」を参照してください。
ネットワーク その他のプライベート IP アドレス
IPv4 アドレス 外部キーストアプロキシのプライベートアドレス
ポート 443

ステップ 3: Network Load Balancer を作成する

Network Load Balancer は、外部キーストアプロキシへの AWS KMS からのリクエストなどのネットワークトラフィックを、設定されたターゲットに分散します。

ロードバランサーとリスナーの設定」トピックの手順に従ってリスナーを設定および追加し、次の必須値を使用してロードバランサーを作成します。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

フィールド
スキーム 内部
IP アドレスタイプ IPv4
ネットワークマッピング

外部キーストアの VPC エンドポイントサービスを作成する VPC を選択します。

マッピング VPC サブネットに設定した両方のアベイラビリティーゾーン (2 つ以上) を選択します。サブネット名とプライベート IP アドレスを検証します。
[プロトコル] TCP
ポート 443
デフォルトアクション: 転送 Network Load Balancer のターゲットグループを選択します。

ステップ 4: VPC エンドポイントサービスを作成する

通常、サービスへのエンドポイントを作成します。ただし、VPC エンドポイントサービスを作成すると自分がプロバイダーになり、AWS KMS はサービスへのエンドポイントを作成します。外部キーストアの場合は、前のステップで作成した Network Load Balancer で VPC エンドポイントサービスを作成します。VPC エンドポイントサービスは、外部キーストアと同じ AWS アカウント、およびサポートされているリージョンに存在する必要があります。

複数の外部キーストアが Amazon VPC を共有できますが、各外部キーストアに独自の VPC エンドポイントサービスとプライベート DNS 名が必要です。

エンドポイントサービスの作成」トピックの手順に従って、次の必須値を含む VPC エンドポイントサービスを作成します。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

フィールド
ロードバランサーのタイプ ネットワーク
使用可能なロードバランサー 前のステップで作成した Network Load Balancer を選択します。

新しいロードバランサーがリストに表示されない場合は、その状態がアクティブであることを確認します。ロードバランサーの状態がプロビジョニングからアクティブに変わるまでに、数分かかる場合があります。

承認が必要です False。チェックボックスをオフにします。

承認を必要としません。AWS KMS は、手動による承認なしに VPC エンドポイントサービスに接続できません。承認が必要な場合、外部キーストアを作成しようとすると、XksProxyInvalidConfigurationException の例外が発生して失敗します。

プライベート DNS 名を有効にする プライベート DNS 名をサービスに関連付ける
プライベート DNS 名 AWS リージョン で一意のプライベート DNS 名を入力します。

プライベート DNS 名は、上位のパブリックドメインのサブドメインである必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、xks.example.com または example.com などのパブリックドメインのサブドメインである必要があります。

このプライベート DNS 名は、外部キーストアプロキシに設定されている TLS 証明書のサブジェクト共通名 (CN) と一致する必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、TLS 証明書の CN は、myproxy-private.xks.example.com または *.xks.example.com である必要があります。

証明書とプライベート DNS 名が一致しない場合、外部キーストアを外部キーストアプロキシに接続しようとすると、XKS_PROXY_INVALID_TLS_CONFIGURATION の接続エラーコードが発生して失敗します。詳細については、「一般的な設定エラー」を参照してください。

サポートされている IP アドレスのタイプ IPv4

ステップ 5: プライベート DNS 名ドメインを検証する

VPC エンドポイントサービスを作成すると、そのドメイン検証ステータスは pendingVerification になります。VPC エンドポイントサービスを使用して外部キーストアを作成する前に、このステータスが verified になっている必要があります。プライベート DNS 名に関連付けられたドメインを所有していることを検証するには、パブリック DNS サーバーに TXT レコードを作成する必要があります。

例えば、VPC エンドポイントサービスのプライベート DNS 名が myproxy-private.xks.example.com の場合、xks.example.com または example.com などのパブリックドメインで TXT レコードを作成する必要があります。AWS PrivateLink は、最初に xks.example.com で TXT レコードを検索し、次に example.com で検索を続行します。

ヒント

TXT レコードを追加した後、[Domain verification status] (ドメイン検証ステータス) の値が pendingVerification から verify に変わるまでに数分かかる場合があります。

最初に、次のいずれかの方法でドメインの検証ステータスを確認します。有効な値は、verifiedpendingVerificationfailed です。

  • Amazon VPC コンソールで、[Endpoint services] (エンドポイントサービス) を選択し、エンドポイントサービスを選択します。詳細ペインで、[Domain verification status] (ドメイン検証ステータス) を参照してください。

  • DescribeVpcEndpointServiceConfigurations オペレーションを使用します。State 値は ServiceConfigurations.PrivateDnsNameConfiguration.State フィールドにあります。

検証ステータスが verified でない場合は、ドメイン所有権の検証トピックの手順に従ってドメインの DNS サーバーに TXT レコードを追加し、TXT レコードが公開されていることを検証します。次に、検証ステータスを再度チェックします。

プライベート DNS ドメイン名の A レコードを作成する必要はありません。AWS KMS が VPC エンドポイントサービスへのインターフェイスエンドポイントを作成すると、AWS PrivateLink は AWS KMS VPC のプライベートドメイン名に必要な A レコードを含むホストゾーンを自動的に作成します。これは、VPC エンドポイントサービス接続を備える外部キーストアの場合、外部キーストアを外部キーストアプロキシに接続したときに発生します。

ステップ 6: AWS KMS が VPC エンドポイントサービスに接続することを承認する

VPC エンドポイントサービスの [Allow principals] (許可プリンシパル) リストに AWS KMS を追加する必要があります。これにより、AWS KMS は VPC エンドポイントサービスへのインターフェイスエンドポイントを作成できます。AWS KMS が許可されていないプリンシパルの場合、外部キーストアを作成しようとすると、XksProxyVpcEndpointServiceNotFoundException の例外が発生して失敗します。

「AWS PrivateLink ガイド」の「許可を管理する」トピックの手順に従ってください。次の必須値を使用します。

フィールド
ARN cks.kms.<region>.amazonaws.com

例えば、cks.kms.us-east-1.amazonaws.com

Next: 外部キーストアを作成する