4.2. 필요한 RuntimeClass 클라우드 리소스 생성
OpenShift Container Platform을 설치하기 전에 RuntimeClass Cloud 콘솔을 사용하여 OpenShift Container Platform을 yourtekton Cloud에 설치할 수 있는 충분한 권한이 있는 RAM(Resource Access Management) 사용자를 만들어야 합니다. 또한 이 사용자는 새 RAM 사용자를 생성할 수 있는 권한이 있어야 합니다. ccoctl
툴을 구성하고 사용하여 필요한 권한으로 OpenShift Container Platform 구성 요소에 대한 새 인증 정보를 생성할 수도 있습니다.
OpenShift Container Platform의 vGPU Cloud는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
4.2.1. 필요한 RAM 사용자 생성
충분한 권한이 있는 설치에 사용할 RAM(Cloud Resource Access Management) 사용자가 있어야 합니다. RuntimeClass Cloud Resource Access Management 콘솔을 사용하여 새 사용자를 생성하거나 기존 사용자를 수정할 수 있습니다. 나중에 이 사용자의 권한을 기반으로 OpenShift Container Platform에서 인증 정보를 생성합니다.
RAM 사용자를 구성할 때 다음 요구 사항을 고려해야 합니다.
사용자에게 RuntimeClass Cloud AccessKey ID 및 AccessKey 시크릿 쌍이 있어야 합니다.
-
새 사용자의 경우 사용자를 생성할 때 액세스 모드에 대해
Open API Access
를 선택할 수 있습니다. 이 모드에서는 필요한 AccessKey 쌍을 생성합니다. 기존 사용자의 경우 AccessKey 쌍을 추가하거나 해당 사용자의 AccessKey 쌍을 가져올 수 있습니다.
참고생성된 AccessKey 시크릿은 한 번만 표시됩니다. API 호출에 AccessKey 쌍이 필요하므로 AccessKey 쌍을 즉시 저장해야 합니다.
-
새 사용자의 경우 사용자를 생성할 때 액세스 모드에 대해
로컬 컴퓨터의
~/.alibabacloud/credentials
파일에 AccessKey ID와 보안을 추가합니다. 콘솔에 로그인하면 이 파일이 자동으로 생성됩니다. CCO(Cloud Credential Operator) 유틸리티 ccoutil은Credential Request
오브젝트를 처리할 때 이러한 인증 정보를 사용합니다.예를 들면 다음과 같습니다.
[default] # Default client type = access_key # Certification type: access_key access_key_id = LTAI5t8cefXKmt # Key 1 access_key_secret = wYx56mszAN4Uunfh # Secret
- 1
- 여기에 AccessKeyID 및 AccessKeySecret을 추가합니다.
RAM 사용자에게는 OpenShift Container Platform 클러스터를 생성할 수 있는 충분한 권한이 계정에 충분한 권한이 있는지 확인하려면
AdministratorAccess
정책이 있어야 합니다. 이 정책은 모든 NetNamespace Cloud 리소스를 관리할 수 있는 권한을 부여합니다.AdministratorAccess
정책을 RAM 사용자에게 연결하면 해당 사용자에게 모든 RuntimeClass Cloud 서비스 및 리소스에 대한 전체 액세스 권한이 부여됩니다. 전체 액세스 권한이 있는 사용자를 생성하지 않으려면 설치를 위해 RAM 사용자에게 추가할 수 있는 다음 작업으로 사용자 지정 정책을 생성합니다. 이러한 작업은 OpenShift Container Platform을 설치하기에 충분합니다.작은 정보다음 JSON 코드를 copy 및 paste the following JSON code to create a custom poicy를 사용하여 JSON 코드를 복사하여 붙여넣을 수 있습니다. 사용자 지정 정책 생성에 대한 자세한 내용은 RuntimeClass Cloud 설명서에서 사용자 지정 정책 만들기를 참조하십시오.
예 4.1. 사용자 정의 정책 JSON 파일의 예
{ "Version": "1", "Statement": [ { "Action": [ "tag:ListTagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "vpc:DescribeVpcs", "vpc:DeleteVpc", "vpc:DescribeVSwitches", "vpc:DeleteVSwitch", "vpc:DescribeEipAddresses", "vpc:DescribeNatGateways", "vpc:ReleaseEipAddress", "vpc:DeleteNatGateway", "vpc:DescribeSnatTableEntries", "vpc:CreateSnatEntry", "vpc:AssociateEipAddress", "vpc:ListTagResources", "vpc:TagResources", "vpc:DescribeVSwitchAttributes", "vpc:CreateVSwitch", "vpc:CreateNatGateway", "vpc:DescribeRouteTableList", "vpc:CreateVpc", "vpc:AllocateEipAddress", "vpc:ListEnhanhcedNatGatewayAvailableZones" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:ModifyInstanceAttribute", "ecs:DescribeSecurityGroups", "ecs:DeleteSecurityGroup", "ecs:DescribeSecurityGroupReferences", "ecs:DescribeSecurityGroupAttribute", "ecs:RevokeSecurityGroup", "ecs:DescribeInstances", "ecs:DeleteInstances", "ecs:DescribeNetworkInterfaces", "ecs:DescribeInstanceRamRole", "ecs:DescribeUserData", "ecs:DescribeDisks", "ecs:ListTagResources", "ecs:AuthorizeSecurityGroup", "ecs:RunInstances", "ecs:TagResources", "ecs:ModifySecurityGroupPolicy", "ecs:CreateSecurityGroup", "ecs:DescribeAvailableResource", "ecs:DescribeRegions", "ecs:AttachInstanceRamRole" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "pvtz:DescribeRegions", "pvtz:DescribeZones", "pvtz:DeleteZone", "pvtz:DeleteZoneRecord", "pvtz:BindZoneVpc", "pvtz:DescribeZoneRecords", "pvtz:AddZoneRecord", "pvtz:SetZoneRecordStatus", "pvtz:DescribeZoneInfo", "pvtz:DescribeSyncEcsHostTask", "pvtz:AddZone" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "slb:DescribeLoadBalancers", "slb:SetLoadBalancerDeleteProtection", "slb:DeleteLoadBalancer", "slb:SetLoadBalancerModificationProtection", "slb:DescribeLoadBalancerAttribute", "slb:AddBackendServers", "slb:DescribeLoadBalancerTCPListenerAttribute", "slb:SetLoadBalancerTCPListenerAttribute", "slb:StartLoadBalancerListener", "slb:CreateLoadBalancerTCPListener", "slb:ListTagResources", "slb:TagResources", "slb:CreateLoadBalancer" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ram:ListResourceGroups", "ram:DeleteResourceGroup", "ram:ListPolicyAttachments", "ram:DetachPolicy", "ram:GetResourceGroup", "ram:CreateResourceGroup", "ram:DeleteRole", "ram:GetPolicy", "ram:DeletePolicy", "ram:ListPoliciesForRole", "ram:CreateRole", "ram:AttachPolicyToRole", "ram:GetRole", "ram:CreatePolicy", "ram:CreateUser", "ram:DetachPolicyFromRole", "ram:CreatePolicyVersion", "ram:DetachPolicyFromUser", "ram:ListPoliciesForUser", "ram:AttachPolicyToUser", "ram:CreateUser", "ram:GetUser", "ram:DeleteUser", "ram:CreateAccessKey", "ram:ListAccessKeys", "ram:DeleteAccessKey", "ram:ListUsers", "ram:ListPolicyVersions" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "oss:DeleteBucket", "oss:DeleteBucketTagging", "oss:GetBucketTagging", "oss:GetBucketCors", "oss:GetBucketPolicy", "oss:GetBucketLifecycle", "oss:GetBucketReferer", "oss:GetBucketTransferAcceleration", "oss:GetBucketLog", "oss:GetBucketWebSite", "oss:GetBucketInfo", "oss:PutBucketTagging", "oss:PutBucket", "oss:OpenOssService", "oss:ListBuckets", "oss:GetService", "oss:PutBucketACL", "oss:GetBucketLogging", "oss:ListObjects", "oss:GetObject", "oss:PutObject", "oss:DeleteObject" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "alidns:DescribeDomainRecords", "alidns:DeleteDomainRecord", "alidns:DescribeDomains", "alidns:DescribeDomainRecordInfo", "alidns:AddDomainRecord", "alidns:SetDomainRecordStatus" ], "Resource": "*", "Effect": "Allow" }, { "Action": "bssapi:CreateInstance", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "ecs.aliyuncs.com" } } } ] }
RAM 사용자를 만들고 권한을 부여하는 방법에 대한 자세한 내용은 RAM 사용자 생성 및 RAM 사용자에게 권한 부여 를 참조하십시오.