$ rosa create ocm-role
在 AWS 上的 Red Hat OpenShift 服务 (ROSA) Web UI 要求您在 AWS 账户上拥有特定权限,这些权限可以创建信任关系,从而在OpenShift 集群管理器和rosa
命令行界面 (CLI) 提供最终用户体验。
此信任关系是通过创建和关联ocm-role
AWS IAM 角色实现的。此角色具有与 AWS 安装程序的信任策略,该策略将您的 Red Hat 账户链接到您的 AWS 账户。此外,您还需要为每个 Web UI 用户创建一个user-role
AWS IAM 角色,用于识别这些用户。此user-role
AWS IAM 角色没有任何权限。
使用 OpenShift 集群管理器所需的 AWS IAM 角色为:
ocm-role
user-role
无论您是使用 ROSA CLI (rosa
) 还是 OpenShift 集群管理器 Web UI 管理集群,都必须使用 ROSA CLI 创建账户范围的角色,在 ROSA CLI 中称为account-roles
。这些账户角色对于您的第一个集群是必需的,并且这些角色可以在多个集群中使用。这些必需的账户角色为:
Worker-Role
Support-Role
Installer-Role
ControlPlane-Role
角色创建不会请求您的 AWS 访问密钥或密钥。AWS 安全令牌服务 (STS) 用作此工作流程的基础。AWS STS 使用临时、特权受限的凭证来提供身份验证。 |
有关创建这些角色的更多信息,请参阅账户范围的 IAM 角色和策略参考。
集群特定的 Operator 角色(在 ROSA CLI 中称为operator-roles
)获取执行集群操作(例如管理后端存储、入口和注册表)所需的临时权限。这些角色是您创建的集群所必需的。这些必需的 Operator 角色为:
<cluster_name>-<hash>-openshift-cluster-csi-drivers-ebs-cloud-credentials
<cluster_name>-<hash>-openshift-cloud-network-config-controller-credentials
<cluster_name>-<hash>-openshift-machine-api-aws-cloud-credentials
<cluster_name>-<hash>-openshift-cloud-credential-operator-cloud-credentials
<cluster_name>-<hash>-openshift-image-registry-installer-cloud-credentials
<cluster_name>-<hash>-openshift-ingress-operator-cloud-credentials
有关创建这些角色的更多信息,请参阅集群特定的 Operator IAM 角色参考。
您必须创建ocm-role
IAM 资源才能使 Red Hat 用户组织能够创建在 AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群。在与 AWS 链接的上下文中,Red Hat 组织是 OpenShift 集群管理器中的单个用户。
关于您的ocm-role
IAM 资源的一些注意事项:
每个 Red Hat 组织只能链接一个ocm-role
IAM 角色;但是,每个 AWS 账户可以拥有任意数量的ocm-role
IAM 角色。Web UI 要求一次只能链接其中一个角色。
Red Hat 组织中的任何用户都可以创建和链接ocm-role
IAM 资源。
只有 Red Hat 组织管理员才能取消链接ocm-role
IAM 资源。此限制是为了保护其他 Red Hat 组织成员不会干扰其他用户的界面功能。
如果您刚刚创建了一个不属于现有组织的 Red Hat 账户,则此账户也是 Red Hat 组织管理员。 |
有关基本和管理员ocm-role
IAM 资源的 AWS 权限策略列表,请参阅本节“其他资源”中的“了解 OpenShift 集群管理器角色”。
使用 ROSA CLI (rosa
),您可以在创建 IAM 资源时链接它。
将您的 IAM 资源“链接”或“关联”到您的 AWS 账户意味着使用您的 |
在 Red Hat 组织管理员创建和链接ocm-role
IAM 资源后,所有组织成员可能都需要创建和链接他们自己的user-role
IAM 角色。此 IAM 资源每个用户只需要创建和链接一次。如果您的 Red Hat 组织中的其他用户已经创建并链接了ocm-role
IAM 资源,则您需要确保您已经创建并链接了自己的user-role
IAM 角色。
您可以使用命令行界面 (CLI) 创建您的ocm-role
IAM 角色。
您拥有一个 AWS 账户。
您在 OpenShift 集群管理器组织中拥有 Red Hat 组织管理员权限。
您拥有安装 AWS 账户范围角色所需的权限。
您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa
)。
要创建具有基本权限的 ocm-role IAM 角色,请运行以下命令:
$ rosa create ocm-role
要创建具有管理员权限的 ocm-role IAM 角色,请运行以下命令:
$ rosa create ocm-role --admin
此命令允许您通过指定特定属性来创建角色。以下示例输出显示了选择的“自动模式”,它允许 ROSA CLI (rosa
) 创建您的 Operator 角色和策略。有关更多信息,请参阅“其他资源”中的“账户范围角色创建方法”。
I: Creating ocm role
? Role prefix: ManagedOpenShift (1)
? Enable admin capabilities for the OCM role (optional): No (2)
? Permissions boundary ARN (optional): (3)
? Role Path (optional): (4)
? Role creation mode: auto (5)
I: Creating role using 'arn:aws:iam::<ARN>:user/<UserName>'
? Create the 'ManagedOpenShift-OCM-Role-182' role? Yes (6)
I: Created role 'ManagedOpenShift-OCM-Role-182' with ARN 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182'
I: Linking OCM role
? OCM Role ARN: arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182 (7)
? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' role with organization '<AWS ARN>'? Yes (8)
I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' with organization account '<AWS ARN>'
1 | 所有已创建 AWS 资源的前缀值。在此示例中,ManagedOpenShift 作为所有 AWS 资源的前缀。 |
||
2 | 选择是否要使此角色拥有额外的管理员权限。
|
||
3 | 要设置权限边界的策略的 Amazon 资源名称 (ARN)。 | ||
4 | 为用户名指定 IAM 路径。 | ||
5 | 选择创建 AWS 角色的方法。使用auto ,ROSA CLI 会生成并链接角色和策略。在auto 模式下,您会收到一些不同的提示来创建 AWS 角色。 |
||
6 | auto 方法会询问您是否要使用您的前缀创建一个特定的ocm-role 。 |
||
7 | 确认您要将您的 IAM 角色与您的 OpenShift 集群管理器关联。 | ||
8 | 将创建的角色与您的 AWS 组织链接。 |
您需要为每个 Web UI 用户创建一个user-role
IAM 角色,以使这些用户能够创建 ROSA 集群。
关于您的user-role
IAM 角色的一些注意事项:
每个 Red Hat 用户账户只需要一个user-role
IAM 角色,但您的 Red Hat 组织可以拥有许多此类 IAM 资源。
Red Hat 组织中的任何用户都可以创建和链接user-role
IAM 角色。
每个 AWS 账户每个 Red Hat 组织可以有多个user-role
IAM 角色。
Red Hat 使用user-role
IAM 角色来识别用户。此 IAM 资源没有任何 AWS 账户权限。
您的 AWS 账户可以有多个user-role
IAM 角色,但您必须将每个 IAM 角色链接到 Red Hat 组织中的每个用户。任何用户都不能拥有多个已链接的user-role
IAM 角色。
将您的 IAM 资源“链接”或“关联”到您的 AWS 账户意味着使用您的 |
您可以使用命令行界面 (CLI) 创建您的user-role
IAM 角色。
您拥有一个 AWS 账户。
您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa
)。
要创建具有基本权限的user-role
IAM 角色,请运行以下命令:
$ rosa create user-role
此命令允许您通过指定特定属性来创建角色。以下示例输出显示了选择的“自动模式”,该模式允许 ROSA CLI (rosa
) 创建您的 Operator 角色和策略。有关更多信息,请参阅其他资源中的“了解自动和手动部署模式”。
I: Creating User role
? Role prefix: ManagedOpenShift (1)
? Permissions boundary ARN (optional): (2)
? Role Path (optional): (3)
? Role creation mode: auto (4)
I: Creating ocm user role using 'arn:aws:iam::2066:user'
? Create the 'ManagedOpenShift-User.osdocs-Role' role? Yes (5)
I: Created role 'ManagedOpenShift-User.osdocs-Role' with ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role'
I: Linking User role
? User Role ARN: arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role
? Link the 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' role with account '1AGE'? Yes (6)
I: Successfully linked role ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' with account '1AGE'
1 | 所有已创建 AWS 资源的前缀值。在此示例中,ManagedOpenShift 作为所有 AWS 资源的前缀。 |
2 | 要设置权限边界的策略的 Amazon 资源名称 (ARN)。 |
3 | 为用户名指定 IAM 路径。 |
4 | 选择创建 AWS 角色的方法。使用auto ,ROSA CLI 会生成并链接角色和策略。在auto 模式下,您会收到一些不同的提示来创建 AWS 角色。 |
5 | auto 方法会询问您是否要使用您的前缀创建一个特定的user-role 。 |
6 | 将创建的角色与您的 AWS 组织链接。 |
如果您在删除集群之前取消链接或删除您的 |
AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群配置任务需要使用您的 Amazon 资源名称 (ARN) 将ocm-role
和user-role
IAM 角色链接到您的 AWS 账户。
ocm-role
ARN 存储在您的 Red Hat 组织中的标签中,而user-role
ARN 存储在您的 Red Hat 用户账户中的标签中。Red Hat 使用这些 ARN 标签来确认用户是有效的账户持有者,并且拥有执行 AWS 账户中必要任务所需的正确权限。
您可以使用 AWS 上的 Red Hat OpenShift 服务 (ROSA) CLI (rosa
) 将您的 AWS 账户链接到现有的 IAM 角色。
您拥有一个 AWS 账户。
您正在使用OpenShift 集群管理器创建集群。
您拥有安装 AWS 全账户角色所需的权限。有关更多信息,请参阅本节的“其他资源”。
您已在安装主机上安装并配置了最新的 AWS (aws
) 和 ROSA (rosa
) CLI。
您已创建ocm-role
和user-role
IAM 角色,但尚未将它们链接到您的 AWS 账户。您可以通过运行以下命令来检查您的 IAM 角色是否已链接:
$ rosa list ocm-role
$ rosa list user-role
如果Linked
列中两个角色都显示Yes
,则表示您已将角色链接到 AWS 账户。
从 CLI 中,使用您的 Amazon 资源名称 (ARN) 将您的ocm-role
资源链接到您的 Red Hat 组织:
您必须具有 Red Hat 组织管理员权限才能运行 |
$ rosa link ocm-role --role-arn <arn>
I: Linking OCM role
? Link the '<AWS ACCOUNT ID>` role with organization '<ORG ID>'? Yes
I: Successfully linked role-arn '<AWS ACCOUNT ID>' with organization account '<ORG ID>'
从 CLI 中,使用您的 Amazon 资源名称 (ARN) 将您的user-role
资源链接到您的 Red Hat 用户账户:
$ rosa link user-role --role-arn <arn>
I: Linking User role
? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' role with organization '<AWS ID>'? Yes
I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' with organization account '<AWS ID>'
您可以将多个 AWS 账户与您的 Red Hat 组织关联。关联多个账户允许您从您的 Red Hat 组织在任何关联的 AWS 账户上创建 AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群。
使用此功能,您可以通过使用多个 AWS 配置文件作为区域绑定环境在不同的 AWS 区域中创建集群。
您拥有一个 AWS 账户。
您正在使用OpenShift 集群管理器创建集群。
您拥有安装 AWS 账户范围角色所需的权限。
您已在安装主机上安装并配置了最新的 AWS (aws
) 和 ROSA (rosa
) CLI。
您已创建您的ocm-role
和user-role
IAM 角色。
要关联其他 AWS 账户,首先在您的本地 AWS 配置中创建一个配置文件。然后,通过在其他 AWS 账户中创建ocm-role
、用户和账户角色,将该账户与您的 Red Hat 组织关联。
要在其他区域创建角色,请在运行rosa create
命令时指定--profile <aws-profile>
参数,并将<aws_profile>
替换为其他账户配置文件名称。
在创建 OpenShift 集群管理器角色时指定 AWS 账户配置文件:
$ rosa create --profile <aws_profile> ocm-role
在创建用户角色时指定 AWS 账户配置文件:
$ rosa create --profile <aws_profile> user-role
在创建账户角色时指定 AWS 账户配置文件:
$ rosa create --profile <aws_profile> account-roles
如果您未指定配置文件,则使用默认的 AWS 配置文件。 |
您可以将策略作为安装程序角色的权限边界应用。您可以使用 AWS 托管策略或客户托管策略来设置 Amazon Web Services (AWS) Identity and Access Management (IAM) 实体(用户或角色)的边界。策略和边界策略的组合限制了用户或角色的最大权限。ROSA 包含一组三个预准备的权限边界策略文件,您可以使用这些文件来限制安装程序角色的权限,因为不支持更改安装程序策略本身。
此功能仅受 AWS 上的 Red Hat OpenShift 服务(经典架构)集群支持。 |
权限边界策略文件如下:
核心边界策略文件包含 ROSA(经典架构)安装程序安装 AWS 上的 Red Hat OpenShift 服务集群所需的最低权限。安装程序没有创建虚拟私有云 (VPC) 或 PrivateLink (PL) 的权限。需要提供 VPC。
VPC 边界策略文件包含 ROSA(经典架构)安装程序创建/管理 VPC 所需的最低权限。它不包含 PL 或核心安装的权限。如果您需要安装一个集群,其权限足以让安装程序安装集群并创建/管理 VPC,但您不需要设置 PL,则将核心和 VPC 边界文件与安装程序角色一起使用。
PrivateLink (PL) 边界策略文件包含 ROSA(经典架构)安装程序创建具有集群的 AWS PL 所需的最低权限。它不包含 VPC 或核心安装的权限。在安装期间为所有 PL 集群提供预先创建的 VPC。
使用权限边界策略文件时,适用以下组合:
没有权限边界策略意味着完整的安装程序策略权限将应用于您的集群。
仅核心为安装程序角色设置最严格的权限。VPC 和 PL 权限不包含在仅核心边界策略中。
安装程序无法创建或管理 VPC 或 PL。
您必须拥有客户提供的 VPC,并且 PrivateLink (PL) 不可使用。
核心 + VPC 为安装程序角色设置核心和 VPC 权限。
安装程序无法创建或管理 PL。
假设您未使用自定义/BYO-VPC。
假设安装程序将创建和管理 VPC。
核心 + PrivateLink (PL) 表示安装程序可以配置 PL 基础设施。
您必须拥有客户提供的 VPC。
这是用于具有 PL 的私有集群。
本示例流程适用于具有最严格权限的安装程序角色和策略,仅使用ROSA的核心安装程序权限边界策略。您可以使用AWS控制台或AWS CLI完成此操作。本示例使用AWS CLI和以下策略
sts_installer_core_permission_boundary_policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:DescribeAutoScalingGroups",
"ec2:AllocateAddress",
"ec2:AssociateAddress",
"ec2:AttachNetworkInterface",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CopyImage",
"ec2:CreateNetworkInterface",
"ec2:CreateSecurityGroup",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:DeleteNetworkInterface",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSnapshot",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeregisterImage",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAddresses",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeDhcpOptions",
"ec2:DescribeImages",
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceCreditSpecifications",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstanceTypeOfferings",
"ec2:DescribeInstanceTypes",
"ec2:DescribeInternetGateways",
"ec2:DescribeKeyPairs",
"ec2:DescribeNatGateways",
"ec2:DescribeNetworkAcls",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribePrefixLists",
"ec2:DescribeRegions",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeVolumes",
"ec2:DescribeVpcAttribute",
"ec2:DescribeVpcClassicLink",
"ec2:DescribeVpcClassicLinkDnsSupport",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeVpcs",
"ec2:GetConsoleOutput",
"ec2:GetEbsDefaultKmsKeyId",
"ec2:ModifyInstanceAttribute",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:ReleaseAddress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances",
"elasticloadbalancing:AddTags",
"elasticloadbalancing:ApplySecurityGroupsToLoadBalancer",
"elasticloadbalancing:AttachLoadBalancerToSubnets",
"elasticloadbalancing:ConfigureHealthCheck",
"elasticloadbalancing:CreateListener",
"elasticloadbalancing:CreateLoadBalancer",
"elasticloadbalancing:CreateLoadBalancerListeners",
"elasticloadbalancing:CreateTargetGroup",
"elasticloadbalancing:DeleteLoadBalancer",
"elasticloadbalancing:DeleteTargetGroup",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
"elasticloadbalancing:DeregisterTargets",
"elasticloadbalancing:DescribeInstanceHealth",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:DescribeLoadBalancerAttributes",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeTags",
"elasticloadbalancing:DescribeTargetGroupAttributes",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeTargetHealth",
"elasticloadbalancing:ModifyLoadBalancerAttributes",
"elasticloadbalancing:ModifyTargetGroup",
"elasticloadbalancing:ModifyTargetGroupAttributes",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:RegisterTargets",
"elasticloadbalancing:SetLoadBalancerPoliciesOfListener",
"elasticloadbalancing:SetSecurityGroups",
"iam:AddRoleToInstanceProfile",
"iam:CreateInstanceProfile",
"iam:DeleteInstanceProfile",
"iam:GetInstanceProfile",
"iam:TagInstanceProfile",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:GetUser",
"iam:ListAttachedRolePolicies",
"iam:ListInstanceProfiles",
"iam:ListInstanceProfilesForRole",
"iam:ListRolePolicies",
"iam:ListRoles",
"iam:ListUserPolicies",
"iam:ListUsers",
"iam:PassRole",
"iam:RemoveRoleFromInstanceProfile",
"iam:SimulatePrincipalPolicy",
"iam:TagRole",
"iam:UntagRole",
"route53:ChangeResourceRecordSets",
"route53:ChangeTagsForResource",
"route53:CreateHostedZone",
"route53:DeleteHostedZone",
"route53:GetAccountLimit",
"route53:GetChange",
"route53:GetHostedZone",
"route53:ListHostedZones",
"route53:ListHostedZonesByName",
"route53:ListResourceRecordSets",
"route53:ListTagsForResource",
"route53:UpdateHostedZoneComment",
"s3:CreateBucket",
"s3:DeleteBucket",
"s3:DeleteObject",
"s3:GetAccelerateConfiguration",
"s3:GetBucketAcl",
"s3:GetBucketCORS",
"s3:GetBucketLocation",
"s3:GetBucketLogging",
"s3:GetBucketObjectLockConfiguration",
"s3:GetBucketPolicy",
"s3:GetBucketRequestPayment",
"s3:GetBucketTagging",
"s3:GetBucketVersioning",
"s3:GetBucketWebsite",
"s3:GetEncryptionConfiguration",
"s3:GetLifecycleConfiguration",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectTagging",
"s3:GetObjectVersion",
"s3:GetReplicationConfiguration",
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:PutBucketAcl",
"s3:PutBucketPolicy",
"s3:PutBucketTagging",
"s3:PutEncryptionConfiguration",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectTagging",
"servicequotas:GetServiceQuota",
"servicequotas:ListAWSDefaultServiceQuotas",
"sts:AssumeRole",
"sts:AssumeRoleWithWebIdentity",
"sts:GetCallerIdentity",
"tag:GetResources",
"tag:UntagResources",
"kms:DescribeKey",
"cloudwatch:GetMetricData",
"ec2:CreateRoute",
"ec2:DeleteRoute",
"ec2:CreateVpcEndpoint",
"ec2:DeleteVpcEndpoints",
"ec2:CreateVpcEndpointServiceConfiguration",
"ec2:DeleteVpcEndpointServiceConfigurations",
"ec2:DescribeVpcEndpointServiceConfigurations",
"ec2:DescribeVpcEndpointServicePermissions",
"ec2:DescribeVpcEndpointServices",
"ec2:ModifyVpcEndpointServicePermissions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/red-hat-managed": "true"
}
}
}
]
}
要使用权限边界,您需要准备权限边界策略并将其添加到AWS IAM中的相关安装程序角色。虽然ROSA ( |
您拥有一个 AWS 账户。
您拥有管理AWS角色和策略所需的权限。
您已在工作站上安装并配置了最新的AWS (aws
) 和ROSA (rosa
) CLI。
您已准备好ROSA帐户范围内的角色,包括安装程序角色和相应的策略。如果您的AWS帐户中不存在这些角色和策略,请参阅附加资源中的“创建帐户范围的STS角色和策略”。
通过在rosa
CLI中输入以下命令来准备策略文件
$ curl -o ./rosa-installer-core.json https://raw.githubusercontent.com/openshift/managed-cluster-config/master/resources/sts/4.17/sts_installer_core_permission_boundary_policy.json
在AWS中创建策略并通过输入以下命令收集其Amazon资源名称(ARN)
$ aws iam create-policy \
--policy-name rosa-core-permissions-boundary-policy \
--policy-document file://./rosa-installer-core.json \
--description "ROSA installer core permission boundary policy, the minimum permission set, allows BYO-VPC, disallows PrivateLink"
{
"Policy": {
"PolicyName": "rosa-core-permissions-boundary-policy",
"PolicyId": "<Policy ID>",
"Arn": "arn:aws:iam::<account ID>:policy/rosa-core-permissions-boundary-policy",
"Path": "/",
"DefaultVersionId": "v1",
"AttachmentCount": 0,
"PermissionsBoundaryUsageCount": 0,
"IsAttachable": true,
"CreateDate": "<CreateDate>",
"UpdateDate": "<UpdateDate>"
}
}
通过输入以下命令将权限边界策略添加到您要限制的安装程序角色
$ aws iam put-role-permissions-boundary \
--role-name ManagedOpenShift-Installer-Role \
--permissions-boundary arn:aws:iam::<account ID>:policy/rosa-core-permissions-boundary-policy
通过在rosa
CLI中输入以下命令来显示安装程序角色以验证附加的策略(包括权限边界)
$ aws iam get-role --role-name ManagedOpenShift-Installer-Role \
--output text | grep PERMISSIONSBOUNDARY
PERMISSIONSBOUNDARY arn:aws:iam::<account ID>:policy/rosa-core-permissions-boundary-policy Policy
有关PL和VPC权限边界策略的更多示例,请参阅
sts_installer_privatelink_permission_boundary_policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:ModifyVpcEndpointServiceConfiguration",
"route53:ListHostedZonesByVPC",
"route53:CreateVPCAssociationAuthorization",
"route53:AssociateVPCWithHostedZone",
"route53:DeleteVPCAssociationAuthorization",
"route53:DisassociateVPCFromHostedZone",
"route53:ChangeResourceRecordSets"
],
"Resource": "*"
}
]
}
sts_installer_vpc_permission_boundary_policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AssociateDhcpOptions",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:CreateDhcpOptions",
"ec2:CreateInternetGateway",
"ec2:CreateNatGateway",
"ec2:CreateRouteTable",
"ec2:CreateSubnet",
"ec2:CreateVpc",
"ec2:DeleteDhcpOptions",
"ec2:DeleteInternetGateway",
"ec2:DeleteNatGateway",
"ec2:DeleteRouteTable",
"ec2:DeleteSubnet",
"ec2:DeleteVpc",
"ec2:DetachInternetGateway",
"ec2:DisassociateRouteTable",
"ec2:ModifySubnetAttribute",
"ec2:ModifyVpcAttribute",
"ec2:ReplaceRouteTableAssociation"
],
"Resource": "*"
}
]
}
请参阅 IAM实体的权限边界(AWS文档)。
请参阅 创建帐户范围的STS角色和策略。
请参阅 IAM角色故障排除。
请参阅 帐户范围的IAM角色和策略参考,了解创建集群所需IAM角色的列表。