-
iam:CreateAccessKey
-
iam:CreateUser
-
iam:DeleteAccessKey
-
iam:DeleteUser
-
iam:DeleteUserPolicy
-
iam:GetUser
-
iam:GetUserPolicy
-
iam:ListAccessKeys
-
iam:PutUserPolicy
-
iam:TagUser
-
iam:SimulatePrincipalPolicy
薄荷模式是支持它的平台上 OpenShift Container Platform 的默认云凭据操作符 (CCO) 凭据模式。薄荷模式支持 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 集群。
对于使用薄荷模式下的 CCO 的集群,管理员级凭据存储在kube-system
命名空间中。CCO 使用admin
凭据处理集群中的CredentialsRequest
对象并为具有有限权限的组件创建用户。
使用薄荷模式,每个集群组件只有其所需的特定权限。云凭据协调是自动且持续的,以便组件可以执行需要额外凭据或权限的操作。
例如,次要版本集群更新(例如从 OpenShift Container Platform 4.16 更新到 4.17)可能包含集群组件的更新的CredentialsRequest
资源。在薄荷模式下运行的 CCO 使用admin
凭据处理CredentialsRequest
资源并创建具有有限权限的用户以满足更新的身份验证要求。
默认情况下,薄荷模式要求将 |
在薄荷模式下使用 CCO 时,请确保您提供的凭据满足您在其上运行或安装 OpenShift Container Platform 的云的要求。如果提供的凭据不足以用于薄荷模式,则 CCO 无法创建 IAM 用户。
您为 Amazon Web Services (AWS) 中的薄荷模式提供的凭据必须具有以下权限
iam:CreateAccessKey
iam:CreateUser
iam:DeleteAccessKey
iam:DeleteUser
iam:DeleteUserPolicy
iam:GetUser
iam:GetUserPolicy
iam:ListAccessKeys
iam:PutUserPolicy
iam:TagUser
iam:SimulatePrincipalPolicy
您为 Google Cloud Platform (GCP) 中的薄荷模式提供的凭据必须具有以下权限
resourcemanager.projects.get
serviceusage.services.list
iam.serviceAccountKeys.create
iam.serviceAccountKeys.delete
iam.serviceAccountKeys.list
iam.serviceAccounts.create
iam.serviceAccounts.delete
iam.serviceAccounts.get
iam.roles.create
iam.roles.get
iam.roles.list
iam.roles.undelete
iam.roles.update
resourcemanager.projects.getIamPolicy
resourcemanager.projects.setIamPolicy
按照惯例,每个云提供商都在kube-system
命名空间中使用凭据根密钥,然后使用该密钥满足所有凭据请求并创建各自的密钥。这可以通过使用密钥生成模式生成新凭据来完成,也可以通过使用直通模式复制凭据根密钥来完成。
密钥的格式因云提供商而异,并且也用于每个CredentialsRequest
密钥。
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: aws-creds
stringData:
aws_access_key_id: <base64-encoded_access_key_id>
aws_secret_access_key: <base64-encoded_secret_access_key>
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: gcp-credentials
stringData:
service_account.json: <base64-encoded_service_account>
如果您的云提供商凭据因任何原因发生更改,您必须手动更新云凭据操作员 (CCO) 用于管理云提供商凭据的密钥。
旋转云凭据的过程取决于 CCO 配置为使用的模式。在您为使用密钥生成模式的集群旋转凭据后,您必须手动删除由已删除凭据创建的组件凭据。
您的集群安装在支持使用您正在使用的 CCO 模式手动旋转云凭据的平台上。
对于密钥生成模式,支持 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。
您已更改用于与云提供商交互的凭据。
新凭据具有 CCO 在您的集群中配置为使用的模式所需的足够权限。
在 Web 控制台的**管理员**视角中,导航到**工作负载**→**密钥**。
在**密钥**页面上的表格中,找到您的云提供商的根密钥。
平台 | 密钥名称 |
---|---|
AWS |
|
GCP |
|
单击与密钥位于同一行的选项菜单,然后选择**编辑密钥**。
记录**值**字段或多个字段的内容。您可以使用此信息来验证在更新凭据后值是否不同。
使用云提供商的新身份验证信息更新**值**字段或多个字段中的文本,然后单击**保存**。
删除各个CredentialsRequest
对象引用的每个组件密钥。
以具有cluster-admin
角色的用户身份登录到 OpenShift Container Platform CLI。
获取所有引用的组件密钥的名称和命名空间
$ oc -n openshift-cloud-credential-operator get CredentialsRequest \
-o json | jq -r '.items[] | select (.spec.providerSpec.kind=="<provider_spec>") | .spec.secretRef'
其中<provider_spec>
是您云提供商的相应值
AWS:AWSProviderSpec
GCP:GCPProviderSpec
{
"name": "ebs-cloud-credentials",
"namespace": "openshift-cluster-csi-drivers"
}
{
"name": "cloud-credential-operator-iam-ro-creds",
"namespace": "openshift-cloud-credential-operator"
}
删除每个引用的组件密钥
$ oc delete secret <secret_name> \(1)
-n <secret_namespace> (2)
1 | 指定密钥的名称。 |
2 | 指定包含密钥的命名空间。 |
$ oc delete secret ebs-cloud-credentials -n openshift-cluster-csi-drivers
您不需要手动从您的提供商控制台中删除凭据。删除引用的组件密钥将导致 CCO 从平台中删除现有凭据并创建新的凭据。
要验证凭据是否已更改
在 Web 控制台的**管理员**视角中,导航到**工作负载**→**密钥**。
验证**值**字段或多个字段的内容是否已更改。