第 11 章 教程: 在带有 STS 的 ROSA 上使用 AWS Secrets Manager CSI
AWS Secret 和配置提供程序(ASCP)提供了一种将 AWS Secret 公开为 Kubernetes 存储卷的方法。使用 ASCP,您可以在 Secrets Manager 中存储和管理您的 secret,然后通过 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 访问 pull secret 来查找您的登录令牌。
运行以下命令,验证集群是否有 STS:
$ oc get authentication.config.openshift.io cluster -o json \ | jq .spec.serviceAccountIssuer
输出示例
"https://xxxxx.cloudfront.net/xxxxx"
如果您的输出不同,请不要继续。在继续此过程前 ,请参阅创建 STS 集群的红帽文档。
运行以下命令,将
SecurityContextConstraints
权限设置为允许 CSI 驱动程序运行:$ 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=""