第11章 チュートリアル: STS を使用する ROSA での AWS Secrets Manager CSI の使用
AWS Secrets and Configuration Provider (ASCP) は、AWS シークレットを Kubernetes ストレージボリュームとして公開する方法を提供します。ASCP を使用すると、Secrets Manager のシークレットを保存および管理し、Red Hat OpenShift Service on AWS (ROSA) で実行されているワークロードを通じてシークレットを取得できます。
11.1. 前提条件
このプロセスを開始する前に、次のリソースとツールがあることを確認してください。
- STS とともにデプロイされた ROSA クラスター
- Helm 3
-
aws
CLI -
oc
CLI -
jq
CLI
その他の環境要件
次のコマンドを実行して、ROSA クラスターにログインします。
$ oc login --token=<your-token> --server=<your-server-url>
ログイントークンを見つけるには、Red Hat OpenShift Cluster Manager からプルシークレット でクラスターにアクセスします。
次のコマンドを実行して、クラスターに STS があることを検証します。
$ oc get authentication.config.openshift.io cluster -o json \ | jq .spec.serviceAccountIssuer
出力例
"https://xxxxx.cloudfront.net/xxxxx"
出力が異なる場合は、続行しないでください。このプロセスを続行する前に、STS クラスターの作成に関する Red Hat ドキュメント を参照してください。
次のコマンドを実行して、CSI ドライバーの実行を許可するように
SecurityContextConstraints
権限を設定します。$ oc new-project csi-secrets-store $ oc adm policy add-scc-to-user privileged \ system:serviceaccount:csi-secrets-store:secrets-store-csi-driver $ oc adm policy add-scc-to-user privileged \ system:serviceaccount:csi-secrets-store:csi-secrets-store-provider-aws
次のコマンドを実行して、このプロセスで後で使用する環境変数を作成します。
$ export REGION=$(oc get infrastructure cluster -o=jsonpath="{.status.platformStatus.aws.region}") $ export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster \ -o jsonpath='{.spec.serviceAccountIssuer}' | sed 's|^https://||') $ export AWS_ACCOUNT_ID=`aws sts get-caller-identity --query Account --output text` $ export AWS_PAGER=""