2장. 필요한 Alibaba 클라우드 리소스 생성
OpenShift Container Platform을 설치하기 전에 Alibaba Cloud 콘솔을 사용하여 OpenShift Container Platform을 Alibaba Cloud에 설치할 수 있는 충분한 권한이 있는 RAM(Resource Access Management) 사용자를 생성해야 합니다. 또한 이 사용자는 새 RAM 사용자를 생성할 수 있는 권한이 있어야 합니다. ccoctl
툴을 구성하고 사용하여 필요한 권한으로 OpenShift Container Platform 구성 요소에 대한 새 인증 정보를 생성할 수도 있습니다.
OpenShift Container Platform의 Alibaba Cloud는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
2.1. 필요한 RAM 사용자 생성
설치하려면 충분한 권한이 있는 Alibaba Cloud 리소스 액세스 관리(RAM) 사용자가 있어야 합니다. Alibaba 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 설명서에서 사용자 지정 정책 만들기를 참조하십시오.
예 2.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 사용자에게 권한 부여 를 참조하십시오.