4.2. 認証のためのコンポーネントスコーププロキシーの設定
認証スタックのコンポーネントスコーププロキシーは、Authentication Operator リソースの spec.proxy フィールドを指定することで設定できます。
前提条件
- クラスター管理者の権限がある。
-
OpenShift CLI (
oc) がインストールされている。 -
jqCLI ツールがインストールされている。 -
AuthenticationComponentProxyフィーチャーゲートは、TechPreviewNoUpgradeまたはDevPreviewNoUpgrade機能セットを適用して有効化されている。詳細は、「フィーチャーゲートを使用した機能の有効化」を参照してください。 - HTTP または HTTPS プロキシーサーバーが正常に稼働し、クラスターノードからアクセスできる。
手順
オプション: プロキシーがカスタム CA 証明書を必要とする場合は、
openshift-confignamespace に CA バンドルを含む config map を作成します。auth-proxy-ca-bundle.yamlという名前のファイルを作成し、以下の内容を記述してください。apiVersion: v1 kind: ConfigMap metadata: name: auth-proxy-ca-bundle namespace: openshift-config data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- <PEM_encoded_CA_certificate> -----END CERTIFICATE-----name-
config map 名を指定します。
spec.proxy.trustedCA.nameフィールドにこの名前を使用します。 namespace-
namespace を指定します。
openshift-configである必要があります。 ca-bundle.crt-
Privacy-Enhanced Mail (PEM) 形式でエンコードされた CA 証明書バンドルを指定します。キーは
ca-bundle.crtである必要があります。
以下のコマンドを実行して config map を作成します。
$ oc create -f auth-proxy-ca-bundle.yamlまたは、すでに CA 証明書ファイルをお持ちの場合は、以下のコマンドを実行して config map を直接作成することもできます。
$ oc create configmap auth-proxy-ca-bundle \ --from-file=ca-bundle.crt=<path_to_ca_certificate> \ -n openshift-config<path_to_ca_certificate>- PEM 形式でエンコードされた CA 証明書ファイルへのパスを指定します。
AuthenticationOperator リソースを編集してプロキシー設定を追加するには、次のコマンドを実行します。$ oc edit authentication.operator.openshift.io clusterspec.proxyフィールドにプロキシー設定を追加します。apiVersion: operator.openshift.io/v1 kind: Authentication metadata: name: cluster spec: managementState: Managed proxy: httpProxy: "http://proxy.example.com:3128" httpsProxy: "http://proxy.example.com:3128" noProxy: - ".example.com" - "idp.internal.example.com" trustedCA: name: "auth-proxy-ca-bundle"httpProxy-
HTTP リクエストのプロキシー URL を指定します。
httpProxyまたはhttpsProxyの少なくとも一方が必要です。 httpsProxy-
HTTPS リクエストのプロキシー URL を指定します。
httpProxyまたはhttpsProxyの少なくとも一方が必要です。 noProxy-
プロキシーをバイパスするホスト名、ドメイン、CIDR 範囲、または IP アドレスを指定します。クラスター内部のデフォルト値 (
.cluster.local、.svc、127.0.0.1、Kubernetes API サービスの IP、およびlocalhost) は自動的に追加されます。最大 64 件のエントリーを指定できます。 trustedCA-
openshift-config内の、キーca-bundle.crtの下にあるプロキシー CA バンドルを含む config map 名を指定します。プロキシーが TLS 傍受またはプライベート CA を使用する場合にのみ必要です。ステップ 1 で CA config map を作成しなかった場合は、このブロックを省略してください。
- 変更を適用するためにファイルを保存します。
検証
以下のコマンドを実行して、設定が適用されたことを確認してください。
$ oc get authentication.operator.openshift.io cluster -o jsonpath='{.spec.proxy}' | jq .出力例
{ "httpProxy": "http://proxy.example.com:3128", "httpsProxy": "http://proxy.example.com:3128", "noProxy": [ ".example.com", "idp.internal.example.com" ], "trustedCA": { "name": "auth-proxy-ca-bundle" } }認証 Operato がエラーを報告していないことを確認するには、次のコマンドを実行します。
$ oc get clusteroperator authentication出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE authentication {product-version}.0 True False False 10mAVAILABLE列にはTrueが表示され、DEGRADED列にはFalseが表示されます。オプション: 以下のコマンドを実行して、プロキシー経由の認証をテストします。
$ oc login
プロキシー URL を変更すると、OAuth サーバーの再デプロイがトリガーされます。シングルノードの OpenShift Container Platform デプロイメントでは、これにより認証が一時的に停止します。trustedCA config map コンテンツの更新は、再デプロイなしでホットリロードされます。
プロキシーの設定ミスにより、OAuth サーバーがアイデンティティープロバイダーに到達できなくなり、すべてのユーザーがクラスターから締め出される可能性があります。復旧するには、kubeadmin の 認証情報またはクライアント証明書認証を使用してログインしてください。どちらの方法も OAuth をバイパスします。その後、プロキシー設定を修正してください。