2.7. 外部シークレットストアを使用した機密データの Pod への提供
アプリケーションによっては、パスワードやユーザー名など開発者に使用させない秘密情報が必要になります。
Kubernetes Secret
オブジェクトを使用して機密情報を提供する代わりに、外部シークレットストアを使用して機密情報を保存できます。Secrets Store CSI Driver Operator を使用して、外部シークレットストアと統合し、シークレットコンテンツを Pod ボリュームとしてマウントできます。
GCP Filestore CSI Driver Operator は、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
2.7.1. Secrets Store CSI Driver Operator について リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes シークレットは Base64 エンコーディングで保存されます。etcd は、これらのシークレットの保存時に暗号化しますが、シークレットの取得時に、シークレットが復号化されてユーザーに表示されます。クラスターでロールベースのアクセス制御が適切に設定されていない場合、API または etcd へのアクセス権を持つユーザーは誰でもシークレットを取得または変更できます。さらに、namespace で Pod を作成する権限を持つ人は誰でも、そのアクセス権を使用して、その namespace 内の任意のシークレットを読み取ることができます。
シークレットを安全に保存および管理するには、プロバイダープラグインを使用して、Azure Key Vault などの外部シークレット管理システムからシークレットをマウントするように OpenShift Container Platform Secrets Store Container Storage Interface (CSI) Driver Operator を設定できます。アプリケーションはシークレットを使用できますが、アプリケーション Pod が破棄されるとシークレットはシステム上に保持されません。
Secrets Store CSI Driver Operator (secrets-store.csi.k8s.io
) を使用すると、OpenShift Container Platform で、エンタープライズグレードの外部シークレットストアに保存されている複数のシークレット、キー、証明書をボリュームとして Pod にマウントできます。Secrets Store CSI Driver Operator は、gRPC を使用してプロバイダーと通信し、指定された外部シークレットストアからマウントコンテンツを取得します。ボリュームがアタッチされると、その中のデータがコンテナーのファイルシステムにマウントされます。シークレットストアボリュームはインラインでマウントされます。
2.7.1.1. シークレットストアプロバイダー リンクのコピーリンクがクリップボードにコピーされました!
次のシークレットストアプロバイダーは、Secrets Store CSI Driver Operator で使用できます。
- AWS Secrets Manager
- AWS Systems Manager Parameter Store
- Azure Key Vault
2.7.1.2. 自動ローテーション リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI ドライバーは、外部シークレットストアのコンテンツを使用して、マウントされたボリューム内のコンテンツを定期的にローテーションします。外部シークレットストアでシークレットが更新されると、マウントされたボリュームでもシークレットが更新されます。Secrets Store CSI Driver Operator は、2 分ごとに更新をポーリングします。
Kubernetes シークレットとしてマウントされたコンテンツの同期を有効にした場合は、Kubernetes シークレットもローテーションされます。
シークレットデータを使用するアプリケーションは、シークレットの更新を監視する必要があります。
2.7.2. Secrets Store CSI ドライバーのインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
- 管理者としてクラスターにアクセスできる。
手順
Secrets Store CSI ドライバーをインストールするには、以下を実行します。
Secrets Store CSI Driver Operator をインストールします。
- Web コンソールにログインします。
-
Operators
OperatorHub をクリックします。 - フィルターボックスに "Secrets Store CSI" と入力し、Secrets Store CSI Driver Operator を見つけます。
- Secrets Store CSI Driver Operator ボタンをクリックします。
- Secrets Store CSI Driver Operator ページで、Install をクリックします。
Install Operator のページで、以下のことを確認してください。
- All namespaces on the cluster (default) が選択されている。
- Installed Namespace が openshift-cluster-csi-drivers に設定されている。
Install をクリックします。
インストールが終了すると、Web コンソールの Installed Operators セクションに Secrets Store CSI Driver Operator がリストされます。
ドライバーの
ClusterCSIDriver
インスタンス (secrets-store.csi.k8s.io
) を作成します。-
Administration
CustomResourceDefinitions ClusterCSIDriver をクリックします。 Instances タブで Create ClusterCSIDriver をクリックします。
以下の YAML ファイルを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
-
Administration
2.7.3. 外部シークレットストアから CSI ボリュームへのシークレットのマウント リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI Driver Operator をインストールした後、次のいずれかの外部シークレットストアから CSI ボリュームにシークレットをマウントできます。
2.7.3.1. AWS Secrets Manager からのシークレットのマウント リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI Driver Operator を使用して、AWS Secrets Manager から OpenShift Container Platform の CSI ボリュームにシークレットをマウントできます。AWS Secrets Manager からシークレットをマウントするには、クラスターが AWS にインストールされ、AWS Security Token Service (STS) を使用している必要があります。
前提条件
- クラスターが AWS にインストールされ、AWS Security Token Service (STS) を使用している。
- Secrets Store CSI Driver Operator がインストールされている。手順は、Secrets Store CSI ドライバーのインストール を参照してください。
- 必要なシークレットを保存するように AWS Secrets Manager を設定している。
-
ccoctl
バイナリーを抽出して準備している。 -
jq
CLI ツールがインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
AWS Secrets Manager プロバイダーをインストールします。
プロバイダーリソース用に次の設定を使用して YAML ファイルを作成します。
重要Secrets Store CSI ドライバーの AWS Secrets Manager プロバイダーは、アップストリームプロバイダーです。
この設定は、OpenShift Container Platform で適切に動作するように、アップストリームの AWS ドキュメント で提供されている設定から変更されています。この設定を変更すると、機能に影響が出る場合があります。
aws-provider.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
csi-secrets-store-provider-aws
サービスアカウントへの特権アクセスを付与します。oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-aws -n openshift-cluster-csi-drivers
$ oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-aws -n openshift-cluster-csi-drivers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、プロバイダーリソースを作成します。
oc apply -f aws-provider.yaml
$ oc apply -f aws-provider.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
サービスアカウントに AWS シークレットオブジェクトの読み取りを許可するアクセス許可を付与します。
次のコマンドを実行して、認証情報リクエストを含むディレクトリーを作成します。
mkdir credentialsrequest-dir-aws
$ mkdir credentialsrequest-dir-aws
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証情報リクエスト用に次の設定を使用して YAML ファイルを作成します。
credentialsrequest.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OIDC プロバイダーを取得します。
oc get --raw=/.well-known/openid-configuration | jq -r '.issuer'
$ oc get --raw=/.well-known/openid-configuration | jq -r '.issuer'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
https://<oidc_provider_name>
https://<oidc_provider_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のステップで使用するために、出力から OIDC プロバイダー名
<oidc_provider_name>
をコピーします。ccoctl
ツールを使用して、次のコマンドを実行して認証情報リクエストを処理します。ccoctl aws create-iam-roles \ --name my-role --region=<aws_region> \ --credentials-requests-dir=credentialsrequest-dir-aws \ --identity-provider-arn arn:aws:iam::<aws_account>:oidc-provider/<oidc_provider_name> --output-dir=credrequests-ccoctl-output
$ ccoctl aws create-iam-roles \ --name my-role --region=<aws_region> \ --credentials-requests-dir=credentialsrequest-dir-aws \ --identity-provider-arn arn:aws:iam::<aws_account>:oidc-provider/<oidc_provider_name> --output-dir=credrequests-ccoctl-output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
2023/05/15 18:10:34 Role arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: credrequests-ccoctl-output/manifests/my-namespace-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role my-role-my-namespace-aws-creds
2023/05/15 18:10:34 Role arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: credrequests-ccoctl-output/manifests/my-namespace-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role my-role-my-namespace-aws-creds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のステップで使用するために、出力から
<aws_role_arn>
をコピーします。たとえば、arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds
です次のコマンドを実行して、ロール ARN を持つサービスアカウントをバインドします。
oc annotate -n my-namespace sa/aws-provider eks.amazonaws.com/role-arn="<aws_role_arn>"
$ oc annotate -n my-namespace sa/aws-provider eks.amazonaws.com/role-arn="<aws_role_arn>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シークレットプロバイダークラスを作成して、シークレットストアプロバイダーを定義します。
SecretProviderClass
オブジェクトを定義する YAML ファイルを作成します。secret-provider-class-aws.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
SecretProviderClass
オブジェクトを作成します。oc create -f secret-provider-class-aws.yaml
$ oc create -f secret-provider-class-aws.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このシークレットプロバイダークラスを使用するデプロイメントを作成します。
Deployment
オブジェクトを定義する YAML ファイルを作成します。deployment.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Deployment
オブジェクトを作成します。oc create -f deployment.yaml
$ oc create -f deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pod ボリュームマウントの AWS Secrets Manager からシークレットにアクセスできることを確認します。
Pod マウント内のシークレットをリスト表示します。
oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
$ oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
testSecret
testSecret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod マウントのシークレットを表示します。
oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/testSecret
$ oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/testSecret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
<secret_value>
<secret_value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.3.2. AWS Systems Manager パラメーターストアからのシークレットのマウント リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI Driver Operator を使用して、AWS Systems Manager Parameter Store から OpenShift Container Platform の CSI ボリュームにシークレットをマウントできます。AWS Systems Manager Parameter Store からシークレットをマウントするには、クラスターが AWS にインストールされ、AWS Security Token Service (STS) を使用している必要があります。
前提条件
- クラスターが AWS にインストールされ、AWS Security Token Service (STS) を使用している。
- Secrets Store CSI Driver Operator がインストールされている。手順は、Secrets Store CSI ドライバーのインストール を参照してください。
- 必要なシークレットを保存するように AWS Systems Manager パラメーターストアを設定している。
-
ccoctl
バイナリーを抽出して準備している。 -
jq
CLI ツールがインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
AWS Systems Manager Parameter Store プロバイダーをインストールします。
プロバイダーリソース用に次の設定を使用して YAML ファイルを作成します。
重要Secrets Store CSI ドライバーの AWS Systems Manager Parameter Store プロバイダーは、アップストリームのプロバイダーです。
この設定は、OpenShift Container Platform で適切に動作するように、アップストリームの AWS ドキュメント で提供されている設定から変更されています。この設定を変更すると、機能に影響が出る場合があります。
aws-provider.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
csi-secrets-store-provider-aws
サービスアカウントへの特権アクセスを付与します。oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-aws -n openshift-cluster-csi-drivers
$ oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-aws -n openshift-cluster-csi-drivers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、プロバイダーリソースを作成します。
oc apply -f aws-provider.yaml
$ oc apply -f aws-provider.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
サービスアカウントに AWS シークレットオブジェクトの読み取りを許可するアクセス許可を付与します。
次のコマンドを実行して、認証情報リクエストを含むディレクトリーを作成します。
mkdir credentialsrequest-dir-aws
$ mkdir credentialsrequest-dir-aws
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証情報リクエスト用に次の設定を使用して YAML ファイルを作成します。
credentialsrequest.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OIDC プロバイダーを取得します。
oc get --raw=/.well-known/openid-configuration | jq -r '.issuer'
$ oc get --raw=/.well-known/openid-configuration | jq -r '.issuer'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
https://<oidc_provider_name>
https://<oidc_provider_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のステップで使用するために、出力から OIDC プロバイダー名
<oidc_provider_name>
をコピーします。ccoctl
ツールを使用して、次のコマンドを実行して認証情報リクエストを処理します。ccoctl aws create-iam-roles \ --name my-role --region=<aws_region> \ --credentials-requests-dir=credentialsrequest-dir-aws \ --identity-provider-arn arn:aws:iam::<aws_account>:oidc-provider/<oidc_provider_name> --output-dir=credrequests-ccoctl-output
$ ccoctl aws create-iam-roles \ --name my-role --region=<aws_region> \ --credentials-requests-dir=credentialsrequest-dir-aws \ --identity-provider-arn arn:aws:iam::<aws_account>:oidc-provider/<oidc_provider_name> --output-dir=credrequests-ccoctl-output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
2023/05/15 18:10:34 Role arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: credrequests-ccoctl-output/manifests/my-namespace-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role my-role-my-namespace-aws-creds
2023/05/15 18:10:34 Role arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: credrequests-ccoctl-output/manifests/my-namespace-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role my-role-my-namespace-aws-creds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のステップで使用するために、出力から
<aws_role_arn>
をコピーします。たとえば、arn:aws:iam::<aws_account_id>:role/my-role-my-namespace-aws-creds
です次のコマンドを実行して、ロール ARN を持つサービスアカウントをバインドします。
oc annotate -n my-namespace sa/aws-provider eks.amazonaws.com/role-arn="<aws_role_arn>"
$ oc annotate -n my-namespace sa/aws-provider eks.amazonaws.com/role-arn="<aws_role_arn>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シークレットプロバイダークラスを作成して、シークレットストアプロバイダーを定義します。
SecretProviderClass
オブジェクトを定義する YAML ファイルを作成します。secret-provider-class-aws.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
SecretProviderClass
オブジェクトを作成します。oc create -f secret-provider-class-aws.yaml
$ oc create -f secret-provider-class-aws.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このシークレットプロバイダークラスを使用するデプロイメントを作成します。
Deployment
オブジェクトを定義する YAML ファイルを作成します。deployment.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Deployment
オブジェクトを作成します。oc create -f deployment.yaml
$ oc create -f deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pod ボリュームマウントの AWS Systems Manager パラメーターストアからシークレットにアクセスできることを確認します。
Pod マウント内のシークレットをリスト表示します。
oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
$ oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
testParameter
testParameter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod マウントのシークレットを表示します。
oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/testSecret
$ oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/testSecret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
<secret_value>
<secret_value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.3.3. Azure Key Vault からのシークレットのマウント リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI Driver Operator を使用して、Azure Key Vault から OpenShift Container Platform の CSI ボリュームにシークレットをマウントできます。Azure Key Vault からシークレットをマウントするには、クラスターが Microsoft Azure にインストールされている必要があります。
前提条件
- クラスターは Azure にインストールされている。
- Secrets Store CSI Driver Operator がインストールされている。手順は、Secrets Store CSI ドライバーのインストール を参照してください。
- 必要なシークレットを保存するように Azure Key Vault を設定している。
-
Azure CLI (
az
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
Azure Key Vault プロバイダーをインストールします。
プロバイダーリソース用に次の設定を使用して YAML ファイルを作成します。
重要Secrets Store CSI ドライバーの Azure Key Vault プロバイダーは、アップストリームプロバイダーです。
この設定は、OpenShift Container Platform で適切に動作するように、アップストリームの Azure ドキュメント で提供されている設定から変更されています。この設定を変更すると、機能に影響が出る場合があります。
azure-provider.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
csi-secrets-store-provider-azure
サービスアカウントへの特権アクセスを付与します。oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-azure -n openshift-cluster-csi-drivers
$ oc adm policy add-scc-to-user privileged -z csi-secrets-store-provider-azure -n openshift-cluster-csi-drivers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、プロバイダーリソースを作成します。
oc apply -f azure-provider.yaml
$ oc apply -f azure-provider.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Key Vault にアクセスするためのサービスプリンシパルを作成します。
次のコマンドを実行して、サービスプリンシパルのクライアントシークレットを環境変数として設定します。
SERVICE_PRINCIPAL_CLIENT_SECRET="$(az ad sp create-for-rbac --name https://$KEYVAULT_NAME --query 'password' -otsv)"
$ SERVICE_PRINCIPAL_CLIENT_SECRET="$(az ad sp create-for-rbac --name https://$KEYVAULT_NAME --query 'password' -otsv)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、サービスプリンシパルのクライアント ID を環境変数として設定します。
SERVICE_PRINCIPAL_CLIENT_ID="$(az ad sp list --display-name https://$KEYVAULT_NAME --query '[0].appId' -otsv)"
$ SERVICE_PRINCIPAL_CLIENT_ID="$(az ad sp list --display-name https://$KEYVAULT_NAME --query '[0].appId' -otsv)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、サービスプリンシパルのクライアントシークレットと ID を使用して汎用シークレットを作成します。
oc create secret generic secrets-store-creds -n my-namespace --from-literal clientid=${SERVICE_PRINCIPAL_CLIENT_ID} --from-literal clientsecret=${SERVICE_PRINCIPAL_CLIENT_SECRET}
$ oc create secret generic secrets-store-creds -n my-namespace --from-literal clientid=${SERVICE_PRINCIPAL_CLIENT_ID} --from-literal clientsecret=${SERVICE_PRINCIPAL_CLIENT_SECRET}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow secrets-store.csi.k8s.io/used=true
ラベルを適用して、プロバイダーがこのnodePublishSecretRef
シークレットを検索できるようにします。oc -n my-namespace label secret secrets-store-creds secrets-store.csi.k8s.io/used=true
$ oc -n my-namespace label secret secrets-store-creds secrets-store.csi.k8s.io/used=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シークレットプロバイダークラスを作成して、シークレットストアプロバイダーを定義します。
SecretProviderClass
オブジェクトを定義する YAML ファイルを作成します。secret-provider-class-azure.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
SecretProviderClass
オブジェクトを作成します。oc create -f secret-provider-class-azure.yaml
$ oc create -f secret-provider-class-azure.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このシークレットプロバイダークラスを使用するデプロイメントを作成します。
Deployment
オブジェクトを定義する YAML ファイルを作成します。deployment.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Deployment
オブジェクトを作成します。oc create -f deployment.yaml
$ oc create -f deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pod ボリュームマウント内の Azure Key Vault からシークレットにアクセスできることを確認します。
Pod マウント内のシークレットをリスト表示します。
oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
$ oc exec busybox-<hash> -n my-namespace -- ls /mnt/secrets-store/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret1
secret1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod マウントのシークレットを表示します。
oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/secret1
$ oc exec busybox-<hash> -n my-namespace -- cat /mnt/secrets-store/secret1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
my-secret-value
my-secret-value
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.4. マウントされたコンテンツを Kubernetes シークレットとして同期できるようにする リンクのコピーリンクがクリップボードにコピーされました!
同期を有効にして、マウントされたボリューム上のコンテンツから Kubernetes シークレットを作成できます。同期を有効にする例としては、デプロイメント内で環境変数を使用して Kubernetes シークレットを参照することが挙げられます。
シークレットを OpenShift Container Platform クラスターおよび etcd に保存しない場合は、同期を有効にしないでください。この機能は、環境変数を使用してシークレットを参照する場合など、必要な場合にのみ有効にしてください。
同期を有効にすると、シークレットをマウントする Pod を開始した後、マウントされたボリュームのシークレットが Kubernetes シークレットとして同期されます。
コンテンツをマウントしたすべての Pod が削除されると、同期された Kubernetes シークレットも削除されます。
前提条件
- Secrets Store CSI Driver Operator がインストールされている。
- シークレットストアプロバイダーがインストールされている。
- シークレットプロバイダークラスが作成されている。
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次のコマンドを実行して、
SecretProviderClass
リソースを編集します。oc edit secretproviderclass my-azure-provider
$ oc edit secretproviderclass my-azure-provider
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
my-azure-provider
をシークレットプロバイダークラスの名前に置き換えます。
同期された Kubernetes シークレットの設定を含む
secretsObjects
セクションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を適用するためにファイルを保存します。
2.7.5. Pod ボリュームマウント内のシークレットのステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
Pod ボリュームマウント内のシークレットのバージョンなどの詳細情報を表示できます。
Secrets Store CSI Driver Operator は、Pod と同じ namespace に SecretProviderClassPodStatus
リソースを作成します。このリソースを確認すると、Pod ボリュームマウントのシークレットに関するバージョンなどの詳細情報を確認できます。
前提条件
- Secrets Store CSI Driver Operator がインストールされている。
- シークレットストアプロバイダーがインストールされている。
- シークレットプロバイダークラスが作成されている。
- Secrets Store CSI Driver Operator からボリュームをマウントする Pod をデプロイしている。
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次のコマンドを実行して、Pod ボリュームマウントのシークレットに関する詳細情報を表示します。
oc get secretproviderclasspodstatus <secret_provider_class_pod_status_name> -o yaml
$ oc get secretproviderclasspodstatus <secret_provider_class_pod_status_name> -o yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- シークレットプロバイダークラスの Pod ステータスオブジェクトの名前は、
<pod_name>-<namespace>-<secret_provider_class_name>
の形式になります。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.6. Secrets Store CSI Driver Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
- 管理者としてクラスターにアクセスできる。
手順
Secrets Store CSI Driver Operator をアンインストールするには、以下を実行します。
-
Secrets-store.csi.k8s.io
プロバイダーを使用するすべてのアプリケーション Pod を停止します。 - 選択したシークレットストアのサードパーティープロバイダープラグインをすべて削除します。
Container Storage Interface (CSI) ドライバーと関連するマニフェストを削除します。
-
Administration
CustomResourceDefinitions ClusterCSIDriver をクリックします。 - Instances タブの左端にある secrets-store.csi.k8s.io でドロップダウンメニューをクリックし、Delete ClusterCSIDriver をクリックします。
- プロンプトが表示されたら、Delete をクリックします。
-
Administration
- CSI ドライバー Pod が稼働していないことを確認します。
Secrets Store CSI Driver Operator をアンインストールします。
注記Operator をアンインストールする前に、まず CSI ドライバーを削除する必要があります。
-
Operators
Installed Operators をクリックします。 - Installed Operators ページで、スクロールするか、Search by name ボックスに "Secrets Store CSI" と入力して Operator を見つけ、クリックします。
-
Installed Operators > Operator details ページの右上に表示される Actions
Uninstall Operator をクリックします。 Uninstall Operator ウィンドウでプロンプトが表示されたら、Uninstall ボタンをクリックして namespace から Operator を削除します。Operator によってクラスターにデプロイされたアプリケーションは手動でクリーンアップする必要があります。
アンインストールすると、Secrets Store CSI Driver Operator は Web コンソールの Installed Operators セクションにリストされなくなります。
-
Operators