AWS プライベート認証機関のルート証明書と下位 CA 証明書を、複数の AWS アカウントまたは AWS リージョンにインストールしたいでsy。
簡単な説明
AWS プライベート CA を使用して、プライベートルート CA またはプライベート下位 CA をホストできます。AWS マネジメントコンソールを使用して、AWS プライベート CA がホストするプライベートルート CA または下位 CA 証明書を作成してインストールできます。ただし、プライベートルート CA と下位 CA は同じアカウントとリージョンにある必要があります。
証明書を別のアカウントまたはリージョンにインストールするには、AWS コマンドラインインターフェイス (AWS CLI) または API を使用する必要があります。これは、AWS マネジメントコンソールでは、別のアカウントまたはリージョンに証明書をインストールできないためです。
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
解決策
注:
別々のアカウントまたはリージョンにプライベート下位 CA を作成する
AWS マネジメントコンソールまたは AWS CLI を使用して下位 CA を作成します。
次の例では、region1 を使用してプライベートルート CA を作成します。この例では、region1 のプライベートルート CA を使用して、region2 のプライベート下位 CA を発行します。
プライベートルート CA の CA 証明書をインストールする
AWS マネジメントコンソールまたは AWS CLI を使用して、プライベートルート CA 証明書をインストールします。
下位 CA から CSR を取得する
下位 CA から証明書署名リクエスト (CSR) を取得するには、AWS CLI コマンド get-certificate-authority-csr を実行します。
$ aws acm-pca get-certificate-authority-csr \
--certificate-authority-arn arn:aws:acm-pca:region2:account2:certificate-authority/SUB_CA_ID \
--output text \
--region region2 > sub_ca.csr
region1 のプライベートルート CA を使用して、プライベート下位 CA 証明書を発行する
プライベートルート CA を使用して CSR に署名し、プライベートルート CA を使用して下位 CA 証明書を発行します。
AWS CLI コマンド issue-certificate を実行します。
$ aws acm-pca issue-certificate \
--certificate-authority-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID \
--csr fileb://sub_ca.csr \
--signing-algorithm SHA256WITHRSA \
--template-arn arn:aws:acm-pca:::template/subordinateCAcertificate_PathLen0/V1 \
--validity Value=1095,Type=DAYS \
--region region1
注: 上記のテンプレートは、パスの長さが 0 であるため、エンドエンティティ証明書のみを発行できます。AWS プライベート CA がサポートしているすべてのテンプレートタイプのリストについては、「証明書テンプレートについて」を参照してください。
region1 のプライベートルート CA から下位 CA 証明書を取得する
-
AWS CLI コマンド get-certificate を実行します。
$ aws acm-pca get-certificate \
--certificate-authority-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID \
--certificate-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID/certificate/SUB_CERTIFICATE_ID \
--output text \
--region region1 > sub_ca_cert.pem
sub_ca_cert.pem ファイルの例を次に示します。
-----BEGIN CERTIFICATE-----
.....Content of your subordinate CA certificate......
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
.....Content of your parent Root CA certificate (Chain)......
-----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE----- と**-----END CERTIFICATE-----** の間の最初のテキストブロックが、下位 CA 証明書の本文です。このテキストブロックを新しいファイルに入力し、そのファイルを sub_ca_cert_body.pem という名前で保存します。
注: コマンドラインの JSON プロセッサである jq を使用して証明書を解析し、独自のファイルにチェーンすることもできます。AWS CLI コマンド get-certificate で jq を使用する方法の詳細については、「APIPassthrough テンプレートを使用してカスタムサブジェクト名で証明書を発行する」を参照してください。
-
-----BEGIN CERTIFICATE----- と -----END CERTIFICATE----- の間の 2 番目のテキストブロックが、下位 CA 証明書の証明書チェーンです。証明書チェーンには、発行元のプライベートルート CA の証明書が含まれています。このテキストブロックを新しいファイルに入力し、そのファイルを sub_ca_cert_chain.pem という名前で保存します。
下位 CA 証明書を region2 にインストールする
AWS CLI コマンド import-certificate-authority-certificate を実行します。
$ aws acm-pca import-certificate-authority-certificate \
--certificate-authority-arn arn:aws:acm-pca:region2:account2:certificate-authority/SUB_CA_ID \
--certificate fileb://sub_ca_cert_body.pem \
--certificate-chain fileb://sub_ca_cert_chain.pem \
--region region2
これにより、下位 CA 証明書のインストールが完了し、複数のアカウントとリージョンでプライベートエンドエンティティ証明書を発行できるようになります。
関連情報
レジリエンスを計画する
ルート CA に独自の AWS アカウントを付与する