ベストプラクティス - AWS Certificate Manager

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

ベストプラクティス

ベストプラクティスとは、 AWS Certificate Manager (AWS Certificate Manager) をより効果的に使用するのに役立つ推奨事項です。次のベストプラクティスは、現在の ACM クライアントの実際の経験に基づいています。

AWS CloudFormation

AWS CloudFormation を使用すると、 AWS 使用したいリソースを記述したテンプレートを作成できます。 AWS CloudFormation 次に、それらのリソースを自動的にプロビジョニングして構成します。 AWS CloudFormation Elastic Load Balancing、Amazon CloudFront、Amazon API Gateway などの ACM でサポートされているリソースをプロビジョニングできます。詳細については、「と統合されたサービス AWS Certificate Manager」を参照してください。

AWS CloudFormation を使用して複数のテスト環境をすばやく作成および削除する場合は、環境ごとに個別の ACM 証明書を作成しないことをお勧めします。これを行うと、証明書のクォータをすぐに使い切ってしまいます。(詳細については、クォータ を参照してください)。代わりに、テストに使用しているすべてのドメイン名をカバーするワイルドカード証明書を作成します。例えば、<version>.service.example.com などの、バージョン番号だけ異なるドメイン名に対して ACM 証明書を繰り返し作成する場合は、代わりに <*>.service.example.com のワイルドカード証明書を 1 つ作成します。 AWS CloudFormation テスト環境の作成に使用するテンプレートには、ワイルドカード証明書を含めてください。

証明書のピンニング

証明書ピニング (SSL ピンニングとも呼ばれる) は、アプリケーションで、ホストに証明書階層ではなく X.509 証明書またはパブリックキーを直接関連付けることによって、リモートホストを検証するのに使用できるプロセスです。したがって、アプリケーションでは、ピニングを使用して SSL/TLS 証明書チェーンの検証をバイパスします。一般的な SSL 検証プロセスでは、ルート認証局 (CA) 証明書から下位 CA 証明書 (存在する場合) まで、証明書チェーン全体の署名をチェックします。また、階層の最下位にあるリモートホストの証明書もチェックします。その代わりに、アプリケーションは、証明書をピニングすることにより、リモートホストに、ルート証明書またはチェーン内の他のものではなく、その証明書のみが信頼できるということを伝えられます。リモートホストの証明書またはパブリックキーを開発中にアプリケーションに追加できます。または、最初にホストに接続する際にアプリケーションが証明書またはキーを追加することができます。

警告

アプリケーションでは、ACM 証明書をピニングしないことをお勧めします。&CM は、ACM 証明書のマネージド更新 を実行し、Amazon 発行の SSL/TLS 証明書を有効期限が切れる前に自動的に更新します。証明書を更新するために ACM は新しいパブリックキーとプライベートキーのペアを生成します。アプリケーションが ACM 証明書をピン留めし、証明書が新しいパブリックキーで正常に更新された場合、アプリケーションはドメインに接続できない可能性があります。

証明書をピンすることを決定した場合は、次のオプションを選択しても、アプリケーションのドメインへの接続が妨げられることはありません。

  • 保持する証明書を ACM にインポートし、アプリケーションをインポートした証明書に固定化します。ACM はインポートした証明書を自動的に更新しようとはしません。

  • パブリック証明書を使用している場合は、アプリケーションを利用可能なすべての Amazon ルート証明書に固定化します。プライベート証明書を使用している場合は、アプリケーションを CA のルート証明書にピンニングします。

ドメイン検証

Amazon 認証局 (CA) がサイトの証明書を発行する前に、 AWS Certificate Manager (ACM) は、リクエストで指定したすべてのドメインをユーザーが所有または管理していることを確認する必要があります。E メールまたは DNS のいずれかを使用して検証を実行できます。詳細については、DNS での検証およびE メール検証を参照してください。

ドメイン名の追加または削除

既存の ACM 証明書からドメイン名を追加または削除することはできません。代わりに、修正済みのドメイン名のリストから新しい証明書をリクエストする必要があります。たとえば、証明書に 5 つのドメイン名があり、さらに 4 つを追加する場合は、9 つのドメイン名すべてで新しい証明書をリクエストする必要があります。新しい証明書と同様に、元の証明書に対して事前に検証済みの名前を含むリクエスト内のすべてのドメイン名の所有権を検証する必要があります。

E メール検証を使用する場合、ドメインごとに最大で 8 件の検証 E メールメッセージが送信され、そのうち少なくとも 1 件を 72 時間以内に処理する必要があります。たとえば、5 つのドメイン名で証明書をリクエストすると、最大で 40 件の検証メッセージが送信され、そのうち少なくとも 5 件を 72 時間以内に処理する必要があります。証明書リクエストのドメイン名の数が増えると、E メールを使用してドメインの所有権を検証するために必要な作業も増えます。

代わりに DNS 検証を使用する場合は、検証する FQDN のデータベースに対して新しい DNS レコードを 1 つ書き込む必要があります。ACM はレコードを送信してデータベースを作成し、後でそのデータベースに対してクエリを実行してレコードが追加されたかどうかを判断します。レコードの追加によって、お客様がドメインの所有者または管理者であることがアサートされます。前述の例では、5 つのドメイン名で証明書をリクエストした場合、5 つの DNS レコードを作成する必要があります。可能な場合は、DNS 検証を使用することをお勧めします。

証明書の透明性ログ記録のオプトアウト

重要

証明書の透明性のログ記録を無効にするために実行するアクションにかかわらず、証明書のバインド先のパブリックエンドポイントまたはプライベートエンドポイントにアクセスできるクライアントまたは個人によって、証明書が引き続きログに記録される場合があります。ただし、証明書には署名付き証明書タイムスタンプ (SCT) は含まれません。発行元の CA のみが、証明書に SCT を埋め込むことができます。

2018 年 4 月 30 日に、Google Chrome は証明書の透明性ログに記録されていないパブリック SSL/TLS 証明書の信頼を停止しました。したがって、2018 年 4 月 24 日から Amazon CA は、すべての新しい証明書と更新を少なくとも 2 つの公開ログに公開するようになりました。証明書がログに記録されると、削除することはできません。(詳細については、証明書の透明性ログ記録 を参照してください)。

ログ記録は、証明書をリクエストするとき、または証明書が更新されたときに自動的に実行されますが、オプトアウトすることもできます。その一般的な理由には、セキュリティとプライバシーに関する懸念があります。たとえば、内部ホストドメイン名のログ記録により、それ以外の場合には公開されない内部ネットワークについての情報が潜在的な攻撃者に提供されます。さらに、ログ記録により、新規または未リリース製品やウェブサイトの名前が漏洩する可能性があります。

証明書をリクエストする際に透明性ロギングをオプトアウトするには、request-certificate options AWS CLI コマンドまたは API オペレーションのパラメータを使用してください。RequestCertificate2018 年 4 月 24 日より前に発行された証明書で、更新時に記録されないようにしたい場合は、update-certificate-optionsコマンドまたは UpdateCertificateOptionsAPI オペレーションを使用してオプトアウトできます。

制限事項
  • コンソールを使用して、透明性ログを有効または無効にすることはできません。

  • 証明書が更新期間に入った後 (通常は証明書の有効期限が切れる 60 日前) にロギング状態を変更することはできません。ステータスの変更が失敗しても、エラーメッセージは生成されません。

証明書がログに記録されると、ログから削除することはできません。その時点でオプトアウトしても効果はありません。証明書をリクエストしたときにログ記録を停止して、後でオプトインするように選択すると、証明書は更新されるまでログに記録されません。証明書をすぐにログに記録する場合は、新しい証明書を発行することをお勧めします。

次の例では、新しい証明書をリクエストするときに request-certificate コマンドを使用して証明書の透明性を無効にする方法を示しています。

aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS \ --options CertificateTransparencyLoggingPreference=DISABLED \

上記のコマンドは、新しい証明書の ARN を出力します。

{ "CertificateArn": "arn:aws:acm:region:account:certificate/certificate_ID" }

証明書を既にお持ちで、更新時に記録したくない場合は、update-certificate-optionsコマンドを使用してください。このコマンドは値を返しません。

aws acm update-certificate-options \ --certificate-arn arn:aws:acm:region:account:\ certificate/certificate_ID \ --options CertificateTransparencyLoggingPreference=DISABLED

有効にします。 AWS CloudTrail

ACM CloudTrail を使い始める前にロギングをオンにしてください。 CloudTrail AWS 管理コンソール、 AWS SDK、、および上位レベルのAmazon Web Services 介して行われた API 呼び出しを含む、アカウントの API 呼び出しの履歴を取得することで、 AWS デプロイを監視できます。 AWS AWS Command Line Interfaceまた、履歴では、ACM API を呼び出したユーザーとアカウント、呼び出し元のソース IP アドレス、および呼び出しの発生日時を特定できます。API CloudTrail を使用してアプリケーションに統合したり、組織の証跡作成を自動化したり、証跡のステータスを確認したり、管理者がログを有効または無効にする方法を制御したりできます。 CloudTrail 詳細については、「証跡の作成」を参照してください。ACM アクションの証跡の例については、「との併用 CloudTrail AWS Certificate Manager」を参照してください。