翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 エンドポイントサービスに接続できません。承認が必要な場合、外部キーストアを作成しようとすると、 |
プライベート DNS 名を有効にする | プライベート DNS 名をサービスに関連付ける |
プライベート DNS 名 | AWS リージョン で一意のプライベート DNS 名を入力します。 プライベート DNS 名は、上位のパブリックドメインのサブドメインである必要があります。例えば、プライベート DNS 名が このプライベート DNS 名は、外部キーストアプロキシに設定されている TLS 証明書のサブジェクト共通名 (CN) と一致する必要があります。例えば、プライベート DNS 名が 証明書とプライベート DNS 名が一致しない場合、外部キーストアを外部キーストアプロキシに接続しようとすると、 |
サポートされている 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
に変わるまでに数分かかる場合があります。
最初に、次のいずれかの方法でドメインの検証ステータスを確認します。有効な値は、verified
、pendingVerification
、failed
です。
-
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. 例えば、 |
Next: 外部キーストアを作成する