Cloudflare
Cloudflareを使用するには、2種類のトークンのいずれかを使用できます。APIトークンは、特定のゾーンと権限にバインドされたアプリケーションスコープのキーを許可しますが、APIキーは、アカウントと同じ権限を持つグローバルスコープのキーです。
APIトークンは、より制限的な権限を持ち、より簡単に取り消すことができるため、より高いセキュリティのために推奨されます。
APIトークン
トークンは、ユーザープロファイル > APIトークン > APIトークンで作成できます。次の設定が推奨されます。
- 権限
ゾーン - DNS - 編集
ゾーン - ゾーン - 読み取り
- ゾーンリソース
含める - すべてのゾーン
新しいIssuer
を作成するには、まず新しいAPIトークンを含むKubernetesシークレットを作成します
apiVersion: v1kind: Secretmetadata:name: cloudflare-api-token-secrettype: OpaquestringData:api-token: <API Token>
次に、Issuer
マニフェストで
apiVersion: cert-manager.io/v1kind: Issuermetadata:name: example-issuerspec:acme:...solvers:- dns01:cloudflare:apiTokenSecretRef:name: cloudflare-api-token-secretkey: api-token
APIキー
APIキーは、ユーザープロファイル > APIトークン > APIキー > グローバルAPIキー > 表示で取得できます。
新しいIssuer
を作成するには、まずAPIキーを含むKubernetesシークレットを作成します
apiVersion: v1kind: Secretmetadata:name: cloudflare-api-key-secrettype: OpaquestringData:api-key: <API Key>
次に、Issuer
マニフェストで
apiVersion: cert-manager.io/v1kind: Issuermetadata:name: example-issuerspec:acme:...solvers:- dns01:cloudflare:email: my-cloudflare-acc@example.comapiKeySecretRef:name: cloudflare-api-key-secretkey: api-key
トラブルシューティング
アクターcom.cloudflare.api.token.xxxx
は、ゾーンをリストするためにcom.cloudflare.api.account.zone.list
権限が必要です
トークンにゾーンをリストするための正しい権限がないというエラーが表示された場合は、2つの原因が考えられます。
- トークンに
ゾーン - ゾーン - 読み取り
権限がない - cert-managerがDNSの問題によりドメインの誤ったゾーン名を特定した
2番目の問題の場合は、以下のようなエラーが表示されます。
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Started 6s cert-manager Challenge scheduled for processingWarning PresentError 3s (x2 over 3s) cert-manager Error presenting challenge: Cloudflare API Error for GET "/zones?name=<TLD>"Error: 0: Actor 'com.cloudflare.api.token.xxxx' requires permission 'com.cloudflare.api.account.zone.list' to list zones
この場合、DNS01セルフチェックのネームサーバーを変更することをお勧めします。
Cloudflare API error for POST "/zones/<id>/dns_records
一般的なエラー
Cloudflareが次のTLDのDNSレコードを更新するためのAPIの使用をブロックしているため、これに遭遇する可能性があります: .cf
, .ga
, .gq
, .ml
および .tk
。これについては、Cloudflare Communityで説明されています。これらのTLDを使用する場合は、別のDNSプロバイダーを使用することをお勧めします。