Amazon Web Services ブログ
AWS Certificate Manager の ACME サポートを使用してパブリック TLS 証明書の発行を自動化
アプリケーションの TLS 証明書を管理している場合、証明書が期限切れになると、顧客にエラーが表示されるか、サービスが停止するという課題をご存知だと思います。証明書の有効期間が短くなるにつれて(認証局 (CA)/ブラウザフォーラムにより、最大有効期間を 2027 年 3 月から 100 日間に短縮し、2029 年までに 47 日に短縮することが義務付けられています)、手動更新プロセスは受け入れられなくなります。自動化が必要です。
自動証明書管理環境 (ACME) は、人間の介入なしで TLS 証明書をリクエスト、更新、および取り消すためのオープンプロトコルです。Let’s Encrypt と同じプロトコルであり、あらゆるプラットフォームで数十のクライアントによってサポートされています。
2026 年 6 月 30 日、AWS Certificate Manager (ACM) でのパブリック証明書の ACME サポートについてお知らせします。ACM では、Certbot、Kubernetes の証明書マネージャー、acme.sh、または既に使用しているその他のクライアントなど、ACMEv2 互換のクライアントならどれでも動作するフルマネージド ACME サーバーエンドポイントが提供されるようになりました。標準の ACME プロトコルを使用して、Amazon Trust Services からパブリック TLS 証明書を発行できます。
これまで、ACME プロトコルを使用した自動化された証明書管理を希望していた場合、ACM に加えて外部の認証局に頼っていたため、可視性が断片化されていました。ACM に保存されていた証明書もあれば、中央ダッシュボードなしで外部で管理されていた証明書もあります。PKI 管理者は、誰が証明書をリクエストできるか、またどのドメインが許可されるかを制御することができませんでした。
ACM の ACME サポートにより、1 つ以上のマネージド ACME エンドポイントをセットアップして、組織全体の ACME 証明書の使用状況を一元的に管理および監視できるようになりました。
PKI 管理者として、お客様は基本的な証明書発行に留まらない一元的な管理が可能になります。IAM ロールを ACME アカウントにバインドすることで、各クライアントがどのドメインをリクエストできるかをきめ細かく制御できます。エンドポイントレベルでドメインスコープを定義して、組織全体のポリシーを適用できます。また、一元的なモニタリングと可視化を同じ場所で行うことができます。AWS CloudTrail はすべての証明書リクエストを監査できるようにログに記録し、Amazon CloudWatch は運用メトリクスを追跡し、ACM は証明書の更新が近づくと有効期限通知を送信します。ACM を使用すると、PKI チームは ACM コンソール、API コール、ACME のいずれで発行された証明書であっても、すべての証明書を検索できます。
仕組み
開始するには、まず専用の ACME エンドポイントをセットアップし、外部アカウントバインディング (EAB) を使用して認証制御を設定し、エンドポイントが証明書を発行できるドメインを検証し、既存の ACME クライアントを新しいエンドポイントにポイントします。
ドメイン認証ステップは重要です。これにより、証明書の発行をセットアップできる者と証明書をリクエストできる者が区別されます。PKI 管理者は、管理者が保持している DNS 認証情報を使用して、エンドポイントレベルでドメインを 1 回検証します。証明書を必要とするアプリケーション所有者は DNS に触れることはありません。彼らは EAB 認証情報を使用して登録し、エンドポイントはリクエストを許可するドメインとスコープを適用します。つまり、DNS キーを一緒に配布しなくても、証明書の自動化を組織全体に広く配布できるということです。
このデモを、AWS Certificate Manager コンソールの [ACME 証明書] ページから開始します。
このアカウントには既にいくつかのエンドポイントと証明書があります。新しいエンドポイントと証明書を最初から作成する手順を説明します。まず、[ACME エンドポイントの作成] を選択します。
エンドポイントに名前を付けます。[エンドポイントタイプ] は [パブリック] です。ACME クライアントはパブリックインターネット経由で接続します。[証明書タイプ] は [パブリック] です。証明書は Amazon Trust Services によって発行され、ブラウザとオペレーティングシステムによってデフォルトで信頼されます。証明書キータイプでは、デフォルトの ECDSA P-256 のままにします。RSA 2048 と ECDSA P-384 は、クライアントが必要とする場合にも使用できます。
下にスクロールして、ドメインを設定します。ドメイン名を入力し、ドメインスコープを選択します。スコープは、ACME クライアントがこのドメインに対してどの証明書パターンをリクエストできるかを正確に制御します。[完全一致ドメイン] のみをチェックすると、クライアントはその特定のドメイン名の証明書のみをリクエストできます。[サブドメイン] を追加すると、どのサブドメイン (api.example.com や dev.example.com など) の証明書も許可されます。[ワイルドカード] を追加すると、ワイルドカード証明書 (*.example.com) が許可されます。スコープのチェックをオフのままにしておくと、ACME リクエストが有効であっても、このエンドポイントを使用するクライアントはそのタイプの証明書をリクエストできなくなります。本番環境のエンドポイントでは、厳密なセキュリティ体制を適用するために、[完全一致ドメイン] と [サブドメイン] のみを有効にし、[ワイルドカード] のチェックをオフのままにしておくことができます。
また、ドロップダウンメニューから [Amazon Route 53] ホストゾーンを選択します。その後、ドメインの検証に必要な DNS CNAME レコードが ACM によって自動的に作成されるので、手動で行う必要はありません。ドメインが Route 53 の外部でホストされている場合、代わりに DNS プロバイダーで提供された CNAME レコードを手動で作成します。これは、各クライアントが独自のドメイン検証を個別に処理する一般的な ACME のセットアップとは大きく異なります。
これらの一元管理により、PKI 管理者は、ドメインの認証、クライアントがリクエストできる証明書の種類 (ECDSAまたはRSA) の制限、およびワイルドカードの発行の一元的な制限を行うことができます。これらのガバナンス機能が組み込まれているということは、証明書ライフサイクル管理製品を別途購入したり、カスタムポリシーレイヤーを自分で構築したりする必要がないということです。どちらも、多大なコストと運用上のオーバーヘッドを伴います。
[ACME エンドポイントの作成] を選択します
数秒後、エンドポイントが作成されます。コンソールには、次のステップが記載された [セットアップの進行状況] トラッカーが表示されます。ドメインには [検証中] ステータスが表示されます。検証方法は DNS 検証であり、ACM は特定の CNAME レコードをチェックしてお客様がドメインを管理していることを確認します。作成時に Route 53 ホストゾーンを選択したので、[Route 53 にレコードを作成] を選択して ACM に DNS 検証を自動的に処理させます。
次に、外部アカウントバインディング (EAB) 認証情報を作成する必要があります。EAB 認証情報は、ACME クライアントが ACME サーバーにアカウントを登録できるようにするキー識別子と HMAC キーペアです。登録が完了すると、クライアントは独自の非対称キーペアを生成し、それを使用してその後のすべての証明書要求を認証します。エンドポイントの詳細ページで、[外部アカウントバインディング] タブを選択し、[EAB の作成] を選択します。認証情報に名前を付け、オプションで有効期限を設定します。理想的には、クライアント登録を完了するのに必要な時間を超えないようにします。
[EAB 認証情報の作成] を選択すると、コンソールに [キー ID] と [HMAC キー] が表示されます。ACME クライアントの設定に必要なので、これらの値を書き留めておきます。セットアップの進行状況に 4 つの緑色のチェックマークが表示されました。
証明書をリクエストする準備ができました。エンドポイントの詳細ページで、[CLI リファレンスセクション] を展開します。コンソールには、Certbot と acme.sh の両方ですぐに使えるコマンド例が用意されています。Certbot コマンドをコピーし、certbot/certbot イメージを使用してコンテナ内で実行します。
certbot certonly --standalone --non-interactive --agree-tos \
--email <EMAIL> \
--server https://acm-acme-enroll.us-east-1.api.aws/<ENDPOINT_ID>/directory \
--eab-kid <EAB_KID> \
--eab-hmac-key <EAB_HMAC_KEY> \
--issuance-timeout <ISSUANCE_TIMEOUT> \
-d <DOMAIN>
プレースホルダーをエンドポイント URL、EAB 認証情報、およびドメイン名に置き換えます。--eab-kid および --eab-hmac-key 引数は、前に生成した外部アカウントバインディング認証情報を使用して Certbot が ACME エンドポイントに登録する方法です。各 ACME クライアントにはこのステップ用の独自の構文があるため、正確なフラグについてはクライアントのドキュメントを確認してください。
Certbot は ACME エンドポイントとコンタクトし、Amazon Trust Services によって署名された有効な証明書を返します。
証明書をインストールする前に、openssl を使用して証明書を確認します。
これで、証明書が ACM コンソールの [ACME 証明書] タブに、コンソールまたは API を通じて発行された証明書とともに表示されるようになりました。
利用可能性と料金
AWS Certificate Manager の ACME サポートは現在、すべての商用 AWS リージョンでご利用いただけます。後日、AWS GovCloud (米国)、中国リージョン、および AWS European Sovereign Cloud パーティションも利用できるようになります。
料金は発行時に各証明書に含まれるドメインごとで、完全修飾ドメイン名とワイルドカードでは料金が異なります。ボリューム階層は、お客様の AWS アカウントで毎月発行されるすべての証明書全体のドメイン出現数の合計に基づいて計算されます。詳細については、ACM 料金ページをご覧ください。
開始するには、AWS コンソールの ACM セクションにアクセスするか、ドキュメントをお読みください。
原文はこちらです。











