9.7.4. AWS でアンビエント認証情報を使用した ACME 発行者の設定
cert-manager Operator for Red Hat OpenShift を使用して、AWS 上のアンビエント認証情報を使用して DNS-01 チャレンジを解決する ACME 発行者を設定できます。この手順では、Let’s Encrypt を ACME CA サーバーとして使用し、Amazon Route 53 を使用して DNS-01 チャレンジを解決する方法を示します。
前提条件
- クラスターが AWS Security Token Service (STS) を使用するように設定されている場合は、AWS Security Token Service クラスターの cert-manager Operator for Red Hat OpenShift のクラウド認証情報の設定 セクションの手順を実行した。
- クラスターで AWS STS を使用しない場合は、AWS での cert-manager Operator for Red Hat OpenShift クラウド認証情報の設定 セクションの手順を実行した。
手順
オプション:DNS-01 自己チェック用のネームサーバー設定をオーバーライドで指定します。
この手順は、ターゲットのパブリックホストゾーンがクラスターのデフォルトのプライベートホストゾーンに重複する場合のみ、必要です。
次のコマンドを実行して、
CertManagerリソースを編集します。$ oc edit certmanager cluster次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster ... spec: ... controllerConfig: overrideArgs: - '--dns01-recursive-nameservers-only' - '--dns01-recursive-nameservers=1.1.1.1:53'ここでは、以下のようになります。
--dns01-recursive-nameservers-only- そのドメインに関連付けられている権威ネームサーバーを確認する代わりに、再帰的なネームサーバーを指定します。
--dns01-recursive-nameservers=1.1.1.1:53-
DNS-01 自己チェックのためにクエリーを実行する
<host>:<port>ネームサーバーのコンマ区切りリストを指定します。パブリックゾーンとプライベートゾーンの重複を避けるには、1.1.1.1:53値を使用する必要があります。
- 変更を適用するためにファイルを保存します。
オプション: 発行者の namespace を作成します。
$ oc new-project <issuer_namespace>CertManagerリソースを変更して、--issuer-ambient-credentials引数を追加します。$ oc patch certmanager/cluster \ --type=merge \ -p='{"spec":{"controllerConfig":{"overrideArgs":["--issuer-ambient-credentials"]}}}'発行者を作成します。
Issuerオブジェクトを定義する YAML ファイルを作成します。issuer.yamlファイルの例apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: <issuer_name> namespace: <issuer_namespace> spec: acme: server: <server> email: "<email_address>" privateKeySecretRef: name: <secret_private_key> solvers: - dns01: route53: hostedZoneID: <hosted_zone_id> region: us-east-1ここでは、以下のようになります。
< 発行者名 >- 発行者の名前を指定します。
< 発行者名スペース >- 発行者用に作成した名前空間を指定します。
<server>-
ACME サーバーの
ディレクトリーエンドポイントにアクセスするための URL を指定します。この例では、Let’s Encrypt のステージング環境を使用します。 < メールアドレス >- メールアドレスを指定します。
< 秘密鍵 >- ACME アカウントの秘密鍵を保存するシークレットの名前を指定します。
<hosted_zone_id>- ホストゾーン ID を指定します。
次のコマンドを実行して、
Issuerオブジェクトを作成します。$ oc create -f issuer.yaml