2.3. IAM 사용자에게 필요한 AWS 권한
기본 클러스터 리소스를 삭제하려면 IAM 사용자에게 us-east-1
리전에 권한 tag:GetResources
가 있어야 합니다. AWS API 요구 사항의 일부로 OpenShift Container Platform 설치 프로그램은 이 리전에서 다양한 작업을 수행합니다.
AWS(Amazon Web Services)에서 생성되는 IAM 사용자에게 AdministratorAccess
정책을 연결하면 해당 사용자에게 필요한 모든 권한이 부여됩니다. OpenShift Container Platform 클러스터의 모든 구성 요소를 배포하려면 IAM 사용자에게 다음과 같은 권한이 필요합니다.
예 2.1. 설치에 필요한 EC2 권한
-
ec2:AttachNetworkInterface
-
ec2:AuthorizeSecurityGroupEgress
-
ec2:AuthorizeSecurityGroupIngress
-
ec2:CopyImage
-
ec2:CreateNetworkInterface
-
ec2:CreateSecurityGroup
-
ec2:CreateTags
-
ec2:CreateVolume
-
ec2:DeleteSecurityGroup
-
ec2:DeleteSnapshot
-
ec2:DeleteTags
-
ec2:DeregisterImage
-
ec2:DescribeAccountAttributes
-
ec2:DescribeAddresses
-
ec2:DescribeAvailabilityZones
-
ec2:DescribeDhcpOptions
-
ec2:DescribeImages
-
ec2:DescribeInstanceAttribute
-
ec2:DescribeInstanceCreditSpecifications
-
ec2:DescribeInstances
-
ec2:DescribeInstanceTypes
-
ec2:DescribeInternetGateways
-
ec2:DescribeKeyPairs
-
ec2:DescribeNatGateways
-
ec2:DescribeNetworkAcls
-
ec2:DescribeNetworkInterfaces
-
ec2:DescribePrefixLists
-
ec2:DescribePublicIpv4Pools
(publicIpv4Pool
이install-config.yaml
에 지정된 경우에만 필요) -
ec2:DescribeRegions
-
ec2:DescribeRouteTables
-
ec2:DescribeSecurityGroupRules
-
ec2:DescribeSecurityGroups
-
ec2:DescribeSubnets
-
ec2:DescribeTags
-
ec2:DescribeVolumes
-
ec2:DescribeVpcAttribute
-
ec2:DescribeVpcClassicLink
-
ec2:DescribeVpcClassicLinkDnsSupport
-
ec2:DescribeVpcEndpoints
-
ec2:DescribeVpcs
-
ec2:DisassociateAddress
(publicIpv4Pool
이install-config.yaml
에 지정된 경우에만 필요) -
ec2:GetEbsDefaultKmsKeyId
-
ec2:ModifyInstanceAttribute
-
ec2:ModifyNetworkInterfaceAttribute
-
ec2:RevokeSecurityGroupEgress
-
ec2:RevokeSecurityGroupIngress
-
ec2:RunInstances
-
ec2:TerminateInstances
예 2.2. 설치 과정에서 네트워크 리소스를 생성하는 데 필요한 권한
-
ec2:AllocateAddress
-
ec2:AssociateAddress
-
ec2:AssociateDhcpOptions
-
ec2:AssociateRouteTable
-
ec2:AttachInternetGateway
-
ec2:CreateDhcpOptions
-
ec2:CreateInternetGateway
-
ec2:CreateNatGateway
-
ec2:CreateRoute
-
ec2:CreateRouteTable
-
ec2:CreateSubnet
-
ec2:CreateVpc
-
ec2:CreateVpcEndpoint
-
ec2:ModifySubnetAttribute
-
ec2:ModifyVpcAttribute
기존 VPC(Virtual Private Cloud)를 사용하는 경우 네트워크 리소스를 생성하기 위한 이러한 권한이 계정에 필요하지 않습니다.
예 2.3. 설치에 필요한 ELB(Elastic Load Balancing 권한)
-
elasticloadbalancing:AddTags
-
elasticloadbalancing:ApplySecurityGroupsToLoadBalancer
-
elasticloadbalancing:AttachLoadBalancerToSubnets
-
elasticloadbalancing:ConfigureHealthCheck
-
elasticloadbalancing:CreateListener
-
elasticloadbalancing:CreateLoadBalancer
-
elasticloadbalancing:CreateLoadBalancerListeners
-
elasticloadbalancing:CreateTargetGroup
-
elasticloadbalancing:DeleteLoadBalancer
-
elasticloadbalancing:DeregisterInstancesFromLoadBalancer
-
elasticloadbalancing:DeregisterTargets
-
elasticloadbalancing:DescribeInstanceHealth
-
elasticloadbalancing:DescribeListeners
-
elasticloadbalancing:DescribeLoadBalancerAttributes
-
elasticloadbalancing:DescribeLoadBalancers
-
elasticloadbalancing:DescribeTags
-
elasticloadbalancing:DescribeTargetGroupAttributes
-
elasticloadbalancing:DescribeTargetHealth
-
elasticloadbalancing:ModifyLoadBalancerAttributes
-
elasticloadbalancing:ModifyTargetGroup
-
elasticloadbalancing:ModifyTargetGroupAttributes
-
elasticloadbalancing:RegisterInstancesWithLoadBalancer
-
elasticloadbalancing:RegisterTargets
-
elasticloadbalancing:SetLoadBalancerPoliciesOfListener
-
elasticloadbalancing:SetSecurityGroups
OpenShift Container Platform은 ELB 및 ELBv2 API 서비스를 모두 사용하여 로드 밸런서를 프로비저닝합니다. 권한 목록에는 두 서비스에 모두 필요한 권한이 표시됩니다. 두 서비스가 동일한 elasticloadbalancing
작업 접두사를 사용하지만 동일한 작업을 인식하지 못하는 AWS 웹 콘솔에 알려진 문제가 있습니다. 특정 탄력적
로드 밸런싱 작업을 인식하지 못하는 서비스에 대한 경고를 무시할 수 있습니다.
예 2.4. 설치에 필요한 IAM 권한
-
iam:AddRoleToInstanceProfile
-
iam:CreateInstanceProfile
-
iam:CreateRole
-
iam:DeleteInstanceProfile
-
iam:DeleteRole
-
iam:DeleteRolePolicy
-
iam:GetInstanceProfile
-
iam:GetRole
-
iam:GetRolePolicy
-
iam:GetUser
-
iam:ListInstanceProfilesForRole
-
iam:ListRoles
-
iam:ListUsers
-
iam:PassRole
-
iam:PutRolePolicy
-
iam:RemoveRoleFromInstanceProfile
-
iam:SimulatePrincipalPolicy
-
iam:TagInstanceProfile
-
iam:TagRole
-
install-config.yaml
파일에서 기존 IAM 역할을 지정하는 경우 다음 IAM 권한이 필요하지 않습니다.iam:CreateRole
,iam:DeleteRole
,iam:DeleteRolePolicy
,iam:PutRolePolicy
. -
AWS 계정에서 로드 밸런서를 생성하지 않은 경우 IAM 사용자에게
iam:CreateServiceLinkedRole
권한이 필요합니다.
예 2.5. 설치에 필요한 Route 53 권한
-
route53:ChangeResourceRecordSets
-
route53:ChangeTagsForResource
-
route53:CreateHostedZone
-
route53:DeleteHostedZone
-
route53:GetChange
-
route53:GetHostedZone
-
route53:ListHostedZones
-
route53:ListHostedZonesByName
-
route53:ListResourceRecordSets
-
route53:ListTagsForResource
-
route53:UpdateHostedZoneComment
예 2.6. 설치에 필요한 Amazon S3(Simple Storage Service) 권한
-
s3:CreateBucket
-
s3:DeleteBucket
-
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:GetReplicationConfiguration
-
s3:ListBucket
-
s3:PutBucketAcl
-
s3:PutBucketPolicy
-
s3:PutBucketTagging
-
s3:PutEncryptionConfiguration
예 2.7. 클러스터 Operator에 필요한 S3 권한
-
s3:DeleteObject
-
s3:GetObject
-
s3:GetObjectAcl
-
s3:GetObjectTagging
-
s3:GetObjectVersion
-
s3:PutObject
-
s3:PutObjectAcl
-
s3:PutObjectTagging
예 2.8. 기본 클러스터 리소스를 삭제하는 데 필요한 권한
-
autoscaling:DescribeAutoScalingGroups
-
ec2:DeleteNetworkInterface
-
ec2:DeletePlacementGroup
-
ec2:DeleteVolume
-
elasticloadbalancing:DeleteTargetGroup
-
elasticloadbalancing:DescribeTargetGroups
-
iam:DeleteAccessKey
-
iam:DeleteUser
-
iam:DeleteUserPolicy
-
iam:ListAttachedRolePolicies
-
iam:ListInstanceProfiles
-
iam:ListRolePolicies
-
iam:ListUserPolicies
-
s3:DeleteObject
-
s3:ListBucketVersions
-
tag:GetResources
예 2.9. 네트워크 리소스를 삭제하는 데 필요한 권한
-
ec2:DeleteDhcpOptions
-
ec2:DeleteInternetGateway
-
ec2:DeleteNatGateway
-
ec2:DeleteRoute
-
ec2:DeleteRouteTable
-
ec2:DeleteSubnet
-
ec2:DeleteVpc
-
ec2:DeleteVpcEndpoints
-
ec2:DetachInternetGateway
-
ec2:DisassociateRouteTable
-
ec2:ReleaseAddress
-
ec2:ReplaceRouteTableAssociation
기존 VPC를 사용하는 경우 네트워크 리소스를 삭제하기 위해 계정에 이러한 권한이 필요하지 않습니다. 대신 사용자 계정에는 네트워크 리소스를 삭제하기 위한 tag:UntagResources
권한만 필요합니다.
예 2.10. 사용자 정의 KMS(Key Management Service) 키를 사용하여 클러스터를 설치할 수 있는 선택적 권한
-
kms:CreateGrant
-
kms:Decrypt
-
kms:DescribeKey
-
kms:Encrypt
-
kms:GenerateDataKey
-
kms:GenerateDataKeyWithoutPlainText
-
kms:ListGrants
-
kms:RevokeGrant
예 2.11. 공유 인스턴스 역할이 있는 클러스터를 삭제하는 데 필요한 권한
-
iam:UntagRole
예 2.12. 매니페스트를 생성하는 데 필요한 추가 IAM 및 S3 권한
-
iam:GetUserPolicy
-
iam:ListAccessKeys
-
iam:PutUserPolicy
-
iam:TagUser
-
s3:AbortMultipartUpload
-
s3:GetBucketPublicAccessBlock
-
s3:ListBucket
-
s3:ListBucketMultipartUploads
-
s3:PutBucketPublicAccessBlock
-
s3:PutLifecycleConfiguration
Mint 모드로 클라우드 공급자 인증 정보를 관리하는 경우 IAM 사용자에게 iam:CreateAccessKey
및 iam:CreateUser
권한도 필요합니다.
예 2.13. 인스턴스에 대한 선택적 권한 및 설치에 대한 할당량 검사
-
ec2:DescribeInstanceTypeOfferings
-
servicequotas:ListAWSDefaultServiceQuotas
예 2.14. 공유 VPC에 클러스터를 설치할 때 클러스터 소유자 계정에 대한 선택적 권한
-
sts:AssumeRole
예 2.15. 설치에 필요한 공용 IPv4 주소(BYOIP) 기능 Bring your own public IPv4 addresses (BYOIP) feature for installation
-
ec2:DescribePublicIpv4Pools
-
ec2:DisassociateAddress