About mint mode credentials management
When using the Cloud Credential Operator (CCO) in mint mode, you should be familiar with how the CCO uses provider credentials.
For clusters that use the CCO in mint mode, the administrator-level credential is stored in the kube-system namespace.
The CCO uses the admin credential to process the CredentialsRequest objects in the cluster and create users for components with limited permissions.
With mint mode, each cluster component has only the specific permissions it requires. Cloud credential reconciliation is automatic and continuous so that components can perform actions that require additional credentials or permissions.
For example, a minor version cluster update (such as updating from Red Hat OpenShift Container Platform 4.21 to {product-version}) might include an updated CredentialsRequest resource for a cluster component.
The CCO, operating in mint mode, uses the admin credential to process the CredentialsRequest resource and create users with limited permissions to satisfy the updated authentication requirements.
|
|
By default, mint mode requires storing the |
About mint mode permissions requirements
When using the Cloud Credential Operator (CCO) in mint mode, ensure that the credential you provide meets the requirements of the cloud on which you are running or installing Red Hat OpenShift Container Platform. If the provided credentials are not sufficient for mint mode, the CCO cannot create an IAM user.
The credential you provide for mint mode in Amazon Web Services (AWS) must have the following permissions:
-
iam:CreateAccessKey -
iam:CreateUser -
iam:DeleteAccessKey -
iam:DeleteUser -
iam:DeleteUserPolicy -
iam:GetUser -
iam:GetUserPolicy -
iam:ListAccessKeys -
iam:PutUserPolicy -
iam:TagUser -
iam:SimulatePrincipalPolicy
The credential you provide for mint mode in Google Cloud must have the following permissions:
-
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
Admin credentials root secret format
The Cloud Credential Operator (CCO) creates a credentials root secret by minting new credentials with mint mode or by copying the credentials root secret with passthrough mode.
Each cloud provider uses a credentials root secret in the kube-system
namespace by convention, which is then used to satisfy all credentials requests
and create their respective secrets.
The format for the secret varies by cloud, and is also used for each
CredentialsRequest secret.
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>