10.6. ゼロトラスト Workload Identity マネージャーの送信プロキシーの設定
クラスター全体で Egress プロキシーを使用する場合、Operator Lifecycle Manager (OLM) は管理対象の Operator にプロキシー設定を自動的に設定します。HTTPS 接続のプロキシーをサポートするには、認証局 (CA) 証明書をゼロトラスト Workload Identity マネージャーに挿入できます。
10.6.1. ゼロトラスト Workload Identity マネージャーにカスタム CA 証明書を挿入する リンクのコピーリンクがクリップボードにコピーされました!
HTTPS 接続のプロキシーをサポートするために、認証局 (CA) 証明書をゼロトラスト Workload Identity マネージャーに挿入します。この設定により、クラスター全体のプロキシーを有効にした場合でも、アイデンティティーマネージャーが安全に通信できるようになります。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Container Platform のクラスター全体のプロキシーを有効にしている。
- Zero Trust Workload Identity Manager 1.0.0 以降がインストールされています。
- クラスターに SPIRE Server、SPIRE Agent、SPIFFEE CSI ドライバー、および SPIRE OIDC Discovery Provider オペランドがデプロイされている。
手順
以下のコマンドを実行して、
zero-trust-workload- アイデンティティー -manager名前空間に config map を作成します。$ oc create configmap trusted-ca -n zero-trust-workload-identity-manager以下のコマンドを実行して、OpenShift Container Platform によって信頼されている CA バンドルを config map に挿入します。
$ oc label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true -n zero-trust-workload-identity-manager次のコマンドを実行して、Zero Trust Workload Identity Manager のサブスクリプションを更新し、config map を使用するようにします。
$ oc -n zero-trust-workload-identity-manager patch subscription openshift-zero-trust-workload-identity-manager --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_BUNDLE_CONFIGMAP","value":"trusted-ca"}]}}}'
検証
次のコマンドを実行して、オペランドの展開が完了したことを確認してください。
$ oc rollout status deployment/zero-trust-workload-identity-manager-controller-manager -n zero-trust-workload-identity-manager && \ $ oc rollout status statefulset/spireserver -n zero-trust-workload-identity-manager && \ $ oc rollout status daemonset/spire-agent -n zero-trust-workload-identity-manager && \ $ oc rollout status deployment/spire-spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager出力例
deployment "zero-trust-workload-identity-manager-controller-manager" successfully rolled out statefulset "spire-server" successfully rolled out daemonset "spire-agent" successfully rolled out deployment "spire-spiffe-oidc-discovery-provider" successfully rolled out次のコマンドを実行して、CA バンドルがボリュームとしてマウントされたことを確認します。
$ oc get deployment zero-trust-workload-identity-manager -n zero-trust-workload-identity-manager -o=jsonpath={.spec.template.spec.'containers[0].volumeMounts'}$ oc get statefulset spire-server -n zero-trust-workload-identity-manager -o jsonpath='{.spec.template.spec.containers[*].volumeMounts[?(@.name=="trusted-ca-bundle")]}'$ oc get daemonset spire-agent -n zero-trust-workload-identity-manager -o jsonpath='{.spec.template.spec.containers[*].volumeMounts[?(@.name=="trusted-ca-bundle")]}'$ oc get daemonset spire-spiffe-csi-driver -n zero-trust-workload-identity-manager -o jsonpath='{.spec.template.spec.containers[*].volumeMounts[?(@.name=="trusted-ca-bundle")]}'出力例
[{{"mountPath":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true}]次のコマンドを実行して、CA バンドルのソースが
trusted-caconfig map であることを確認します。$ oc get deployment zero-trust-workload-identity-manager -n zero-trust-workload-identity-manager -o=jsonpath={.spec.template.spec.volumes}$ oc get statefulset spire-server -n zero-trust-workload-identity-manager -o=jsonpath='{.spec.template.spec.volumes}' | jq '.[] | select(.name=="trusted-ca-bundle")'$ oc get daemonset spire-agent -n zero-trust-workload-identity-manager -o=jsonpath='{.spec.template.spec.volumes}' | jq '.[] | select(.name=="trusted-ca-bundle")'$ oc get deployment spire-spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager -o=jsonpath='{.spec.template.spec.volumes}' | jq '.[] | select(.name=="trusted-ca-bundle")'出力例
{ "configMap": { "defaultMode": 420, "items": [ { "key": "ca-bundle.crt", "path": "tls-ca-bundle.pem" } ], "name": "trusted-ca" }, "name": "trusted-ca-bundle" }