第 10 章 教程:在带有 STS 的 Red Hat OpenShift Service on AWS 上使用 AWS Secret Manager CSI
AWS Secret 和配置提供程序(ASCP)提供了将 AWS Secret 公开为 Kubernetes 存储卷的方法。使用 ASCP,您可以在 Secret Manager 中存储和管理您的 secret,然后通过运行 Red Hat OpenShift Service on AWS 上的工作负载检索 secret。
10.1. 先决条件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在启动此过程前,请确保您有以下资源和工具:
- 使用 STS 部署的 Red Hat OpenShift Service on AWS 集群
- Helm 3
-
aws
CLI -
oc
CLI -
jq
CLI
其他环境要求
运行以下命令,登录到 Red Hat OpenShift Service on AWS 集群:
oc login --token=<your-token> --server=<your-server-url>
$ oc login --token=<your-token> --server=<your-server-url>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过从 Red Hat OpenShift Cluster Manager 访问 pull secret 中的集群 来查找您的登录令牌。
运行以下命令验证集群是否有 STS:
oc get authentication.config.openshift.io cluster -o json \ | jq .spec.serviceAccountIssuer
$ oc get authentication.config.openshift.io cluster -o json \ | jq .spec.serviceAccountIssuer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
"https://xxxxx.cloudfront.net/xxxxx"
"https://xxxxx.cloudfront.net/xxxxx"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的输出不同,请不要继续。在继续此过程前 ,请参阅创建 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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建在此过程中使用的环境变量:
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=""
$ 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=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow