2.3. GitOps リポジトリーへの AWS Secrets Manager リソースの保存
このガイドでは、Secrets Store Container Storage Interface (SSCSI) Driver Operator で GitOps ワークフローを使用して、AWS Secrets Manager から OpenShift Container Platform の CSI ボリュームにシークレットをマウントする方法を例とともに説明します。
AWS Secrets Manager での SSCSI Driver Operator の使用は、ホストされたコントロールプレーンクラスターではサポートされていません。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
-
ccoctl
バイナリーを抽出して準備している。 -
jq
CLI ツールがインストールされている。 - クラスターが AWS にインストールされ、AWS Security Token Service (STS) を使用している。
- 必要なシークレットを保存するように AWS Secrets Manager を設定している。
- SSCSI Driver Operator がクラスターにインストールされている。
- Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
- GitOps リポジトリーでシークレットを使用する準備ができている。
- Argo CD 管理アカウントを使用して Argo CD インスタンスにログインしている。
手順
AWS Secrets Manager プロバイダーをインストールし、リソースを追加します。
GitOps リポジトリーでディレクトリーを作成し、
aws-provider.yaml
ファイルを次の設定に追加して、AWS Secrets Manager プロバイダーのリソースをデプロイします。重要SSCSI ドライバー用の AWS Secrets Manager プロバイダーは、アップストリームのプロバイダーです。
この設定は、OpenShift Container Platform で適切に動作するように、アップストリームの AWS ドキュメント で提供されている設定から変更されています。この設定を変更すると、機能に影響が出る場合があります。
aws-provider.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow GitOps リポジトリーに
secret-provider-app.yaml
ファイルを追加して、アプリケーションを作成し、AWS Secrets Manager のリソースをデプロイします。secret-provider-app.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
repoURL
フィールドの値を更新して、GitOps リポジトリーを指すようにします。
リソースをデフォルトの Argo CD インスタンスと同期して、それらをクラスターにデプロイします。
アプリケーションがデプロイされている
openshift-cluster-csi-drivers
namespace にラベルを追加し、openshift-gitops
namespace の Argo CD インスタンスが管理できるようにします。oc label namespace openshift-cluster-csi-drivers argocd.argoproj.io/managed-by=openshift-gitops
$ oc label namespace openshift-cluster-csi-drivers argocd.argoproj.io/managed-by=openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プッシュした
aws-provider.yaml
ファイルを含む、GitOps リポジトリー内のリソースをクラスターに適用します。出力例
application.argoproj.io/argo-app created application.argoproj.io/secret-provider-app created ...
application.argoproj.io/argo-app created application.argoproj.io/secret-provider-app created ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Argo CD UI では、csi-secrets-store-provider-aws
daemonset がリソースの同期を継続していることがわかります。この問題を解決するには、AWS Secrets Manager からシークレットをマウントするように SSCSI ドライバーを設定する必要があります。