5.3. 集群特定 Operator IAM 角色参考

本节详细介绍了使用 STS 的 AWS (ROSA) 部署的 Red Hat OpenShift Service 所需的 Operator IAM 角色。集群 Operator 使用 Operator 角色获取执行集群操作所需的临时权限,如管理后端存储、云供应商凭证和对集群的外部访问权限。

在创建 Operator 角色时,匹配的集群版本的 account-wide Operator 策略会附加到角色中。Operator 策略使用 Operator 标记,以及它们与之兼容的版本。Operator 角色的正确策略通过使用标签来决定。

注意

如果您的帐户中有多个匹配策略,则创建 Operator 时会提供一个交互式选项列表。

表 5.12. ROSA 集群特定 Operator 角色

资源描述

<cluster_name>-<hash>-openshift-cluster-csi-drivers-ebs-cloud-credentials

ROSA 需要的 IAM 角色,以通过 Container Storage Interface (CSI) 管理后端存储。

<cluster_name>-<hash>-openshift-machine-api-aws-cloud-credentials

ROSA Machine Config Operator 所需的 IAM 角色,以执行核心集群功能。

<cluster_name>-<hash>-openshift-cloud-credential-operator-cloud-credentials

ROSA Cloud Credential Operator 所需的 IAM 角色来管理云供应商凭证。

<cluster_name>-<hash>-openshift-cloud-network-config-controller-credentials

云网络配置控制器所需的 IAM 角色来管理集群的云网络配置。

<cluster_name>-<hash>-openshift-image-registry-installer-cloud-credentials

ROSA Image Registry Operator 所需的 IAM 角色,用于管理集群的 AWS S3 中的 OpenShift 镜像 registry 存储。

<cluster_name>-<hash>-openshift-ingress-operator-cloud-credentials

ROSA Ingress Operator 所需的 IAM 角色来管理集群的外部访问。

<cluster_name>-<hash>-openshift-cloud-network-config-controller-cloud-credentials

云网络配置控制器所需的 IAM 角色来管理集群的云网络凭证。

5.3.1. Operator IAM 角色 AWS CLI 参考

本节列出了在使用手动模式运行以下 rosa 命令时在终端中显示的 aws CLI 命令:

$ rosa create operator-roles --mode manual --cluster <cluster_name>
注意

使用手动模式时,aws 命令会被打印到终端中,供您查看。查看 aws 命令后,您必须手动运行它们。另外,您可以使用 rosa create 命令指定 --mode auto 来立即运行 aws 命令。

命令输出

aws iam create-role \
	--role-name <cluster_name>-<hash>-openshift-cluster-csi-drivers-ebs-cloud-credent \
	--assume-role-policy-document file://operator_cluster_csi_drivers_ebs_cloud_credentials_policy.json \
	--tags Key=rosa_cluster_id,Value=<id> Key=rosa_openshift_version,Value=<openshift_version> Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-cluster-csi-drivers Key=operator_name,Value=ebs-cloud-credentials

aws iam attach-role-policy \
	--role-name <cluster_name>-<hash>-openshift-cluster-csi-drivers-ebs-cloud-credent \
	--policy-arn arn:aws:iam::<aws_account_id>:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent

aws iam create-role \
	--role-name <cluster_name>-<hash>-openshift-machine-api-aws-cloud-credentials \
	--assume-role-policy-document file://operator_machine_api_aws_cloud_credentials_policy.json \
	--tags Key=rosa_cluster_id,Value=<id> Key=rosa_openshift_version,Value=<openshift_version> Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-machine-api Key=operator_name,Value=aws-cloud-credentials

aws iam attach-role-policy \
	--role-name <cluster_name>-<hash>-openshift-machine-api-aws-cloud-credentials \
	--policy-arn arn:aws:iam::<aws_account_id>:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials

aws iam create-role \
	--role-name <cluster_name>-<hash>-openshift-cloud-credential-operator-cloud-crede \
	--assume-role-policy-document file://operator_cloud_credential_operator_cloud_credential_operator_iam_ro_creds_policy.json \
	--tags Key=rosa_cluster_id,Value=<id> Key=rosa_openshift_version,Value=<openshift_version> Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-cloud-credential-operator Key=operator_name,Value=cloud-credential-operator-iam-ro-creds

aws iam attach-role-policy \
	--role-name <cluster_name>-<hash>-openshift-cloud-credential-operator-cloud-crede \
	--policy-arn arn:aws:iam::<aws_account_id>:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede

aws iam create-role \
	--role-name <cluster_name>-<hash>-openshift-image-registry-installer-cloud-creden \
	--assume-role-policy-document file://operator_image_registry_installer_cloud_credentials_policy.json \
	--tags Key=rosa_cluster_id,Value=<id> Key=rosa_openshift_version,Value=<openshift_version> Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-image-registry Key=operator_name,Value=installer-cloud-credentials

aws iam attach-role-policy \
	--role-name <cluster_name>-<hash>-openshift-image-registry-installer-cloud-creden \
	--policy-arn arn:aws:iam::<aws_account_id>:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden

aws iam create-role \
	--role-name <cluster_name>-<hash>-openshift-ingress-operator-cloud-credentials \
	--assume-role-policy-document file://operator_ingress_operator_cloud_credentials_policy.json \
	--tags Key=rosa_cluster_id,Value=<id> Key=rosa_openshift_version,Value=<openshift_version> Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-ingress-operator Key=operator_name,Value=cloud-credentials

aws iam attach-role-policy \
	--role-name <cluster_name>-<hash>-openshift-ingress-operator-cloud-credentials \
	--policy-arn arn:aws:iam::<aws_account_id>:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials

注意

表中提供的命令示例包括使用 ManagedOpenShift 前缀的 Operator 角色。如果您在创建集群范围的角色和策略(包括 Operator 策略)时定义了自定义前缀,您必须在创建 Operator 角色时使用 --prefix <prefix_name> 选项来引用它。

5.3.2. 关于自定义 Operator IAM 角色前缀

每个使用 AWS 安全令牌服务 (STS) 的 Red Hat OpenShift Service on AWS (ROSA )都需要集群特定的 Operator IAM 角色。

默认情况下,Operator 角色名称使用集群名称和随机 4 位的哈希作为前缀。例如,名为 mycluster 的集群的 Cloud Credential Operator IAM 角色具有默认名称 mycluster-<hash>-openshift-cloud-credential-operator-cloud-credentials,其中 <hash> 是一个随机 4 位字符串。

通过这个默认命名惯例,您可以在 AWS 帐户中轻松识别集群的 Operator IAM 角色。

当您为集群创建 Operator 角色时,您可以选择指定要使用的自定义前缀,而不是 <cluster_name>-<hash>。通过使用自定义前缀,您可以在 Operator 角色名称前添加逻辑标识符来满足您的环境的要求。例如,您可以为集群名称和环境类型添加前缀,如 mycluster-dev。在本例中,带有自定义前缀的 Cloud Credential Operator 角色名称为 mycluster-dev-openshift-cloud-credential-operator-cloud-credenti

注意

角色名称被截断为 64 个字符。

其他资源