2.5. IAM 정책 및 AWS 인증
기본적으로 설치 프로그램은 클러스터가 작동하는 데 필요한 권한으로 부트스트랩, 컨트롤 플레인 및 컴퓨팅 인스턴스에 대한 인스턴스 프로필을 생성합니다.
단일 노드 OpenShift 클러스터에서 설치 후 작업으로 Amazon Elastic Container Registry(ECR)에서 이미지를 가져오려면 클러스터의 컨트롤 플레인 역할과 연결된 IAM 역할에 AmazonEC2ContainerRegistryReadOnly
정책을 추가해야 합니다.
그러나 고유한 IAM 역할을 생성하고 설치 프로세스의 일부로 지정할 수 있습니다. 클러스터를 배포하거나 설치 후 클러스터를 관리하려면 자체 역할을 지정해야 할 수 있습니다. 예를 들면 다음과 같습니다.
- 조직의 보안 정책을 사용하려면 더 제한적인 권한 세트를 사용하여 클러스터를 설치해야 합니다.
- 설치 후 클러스터는 추가 서비스에 액세스해야 하는 Operator를 사용하여 구성됩니다.
고유한 IAM 역할을 지정하도록 선택하는 경우 다음 단계를 수행할 수 있습니다.
- 기본 정책으로 시작하고 필요에 따라 조정합니다. 자세한 내용은 " IAM 인스턴스 프로필에 대한 기본 권한"을 참조하십시오.
- 클러스터의 활동을 기반으로 하는 정책 템플릿을 생성하려면 "AWS IAM Analyzer를 사용하여 정책 템플릿 생성"을 참조하십시오.
2.5.1. IAM 인스턴스 프로필에 대한 기본 권한
기본적으로 설치 프로그램은 클러스터가 작동하는 데 필요한 권한이 있는 부트스트랩, 컨트롤 플레인 및 작업자 인스턴스에 대한 IAM 인스턴스 프로필을 생성합니다.
다음 목록은 컨트롤 플레인 및 컴퓨팅 시스템에 대한 기본 권한을 지정합니다.
예 2.16. 컨트롤 플레인 인스턴스 프로필에 대한 기본 IAM 역할 권한
-
ec2:AttachVolume
-
ec2:AuthorizeSecurityGroupIngress
-
ec2:CreateSecurityGroup
-
ec2:CreateTags
-
ec2:CreateVolume
-
ec2:DeleteSecurityGroup
-
ec2:DeleteVolume
-
ec2:Describe*
-
ec2:DetachVolume
-
ec2:ModifyInstanceAttribute
-
ec2:ModifyVolume
-
ec2:RevokeSecurityGroupIngress
-
elasticloadbalancing:AddTags
-
elasticloadbalancing:AttachLoadBalancerToSubnets
-
elasticloadbalancing:ApplySecurityGroupsToLoadBalancer
-
elasticloadbalancing:CreateListener
-
elasticloadbalancing:CreateLoadBalancer
-
elasticloadbalancing:CreateLoadBalancerPolicy
-
elasticloadbalancing:CreateLoadBalancerListeners
-
elasticloadbalancing:CreateTargetGroup
-
elasticloadbalancing:ConfigureHealthCheck
-
elasticloadbalancing:DeleteListener
-
elasticloadbalancing:DeleteLoadBalancer
-
elasticloadbalancing:DeleteLoadBalancerListeners
-
elasticloadbalancing:DeleteTargetGroup
-
elasticloadbalancing:DeregisterInstancesFromLoadBalancer
-
elasticloadbalancing:DeregisterTargets
-
elasticloadbalancing:Describe*
-
elasticloadbalancing:DetachLoadBalancerFromSubnets
-
elasticloadbalancing:ModifyListener
-
elasticloadbalancing:ModifyLoadBalancerAttributes
-
elasticloadbalancing:ModifyTargetGroup
-
elasticloadbalancing:ModifyTargetGroupAttributes
-
elasticloadbalancing:RegisterInstancesWithLoadBalancer
-
elasticloadbalancing:RegisterTargets
-
elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer
-
elasticloadbalancing:SetLoadBalancerPoliciesOfListener
-
kms:DescribeKey
예 2.17. 컴퓨팅 인스턴스 프로파일의 기본 IAM 역할 권한
-
ec2:DescribeInstances
-
ec2:DescribeRegions
2.5.2. 기존 IAM 역할 지정
설치 프로그램에서 기본 권한으로 IAM 인스턴스 프로필을 생성하는 대신 install-config.yaml
파일을 사용하여 컨트롤 플레인 및 컴퓨팅 인스턴스에 대한 기존 IAM 역할을 지정할 수 있습니다.
사전 요구 사항
-
기존
install-config.yaml
파일이 있습니다.
프로세스
컴퓨팅 시스템의 기존 역할로
compute.platform.aws.iamRole
을 업데이트합니다.컴퓨팅 인스턴스의 IAM 역할이 있는 샘플
install-config.yaml
파일compute: - hyperthreading: Enabled name: worker platform: aws: iamRole: ExampleRole
컨트롤 플레인 시스템에 대한 기존 역할로
controlPlane.platform.aws.iamRole
을 업데이트합니다.컨트롤 플레인 인스턴스에 대한 IAM 역할이 있는 샘플
install-config.yaml
파일controlPlane: hyperthreading: Enabled name: master platform: aws: iamRole: ExampleRole
- 파일을 저장하고 OpenShift Container Platform 클러스터를 설치할 때 참조합니다.
클러스터를 설치한 후 IAM 계정을 변경하거나 업데이트하려면 Cryostat 4 AWS cloud-credentials 액세스 키가 만료된 (Red Hat 지식베이스)를 참조하십시오.
추가 리소스
2.5.3. AWS IAM Analyzer를 사용하여 정책 템플릿 생성
컨트롤 플레인 및 컴퓨팅 인스턴스 프로파일에 필요한 최소한의 권한 세트는 일상적인 작업을 위해 클러스터를 구성하는 방법에 따라 다릅니다.
클러스터 인스턴스에 필요한 권한을 결정하는 한 가지 방법은 AWS Identity and Access Management Access Analyzer(IAM Access Analyzer)를 사용하여 정책 템플릿을 생성하는 것입니다.
- 정책 템플릿에는 지정된 기간 동안 클러스터가 사용한 권한이 포함되어 있습니다.
- 그런 다음 템플릿을 사용하여 세분화된 권한으로 정책을 생성할 수 있습니다.
프로세스
전체 프로세스는 다음과 같습니다.
- CloudTrail이 활성화되어 있는지 확인합니다. CloudTrail은 정책 템플릿을 생성하는 데 필요한 API 호출을 포함하여 AWS 계정의 모든 작업 및 이벤트를 기록합니다. 자세한 내용은 CloudTrail 사용에 대한 AWS 설명서를 참조하십시오.
- 컨트롤 플레인 인스턴스의 인스턴스 프로필과 컴퓨팅 인스턴스의 인스턴스 프로필을 생성합니다. 각 역할에 PowerUserAccess와 같은 허용 정책을 할당해야 합니다. 자세한 내용은 인스턴스 프로필 역할을 생성하기 위한 AWS 설명서를 참조하십시오.
- 개발 환경에 클러스터를 설치하고 필요에 따라 구성합니다. 클러스터가 프로덕션 환경에서 호스팅할 모든 애플리케이션을 배포해야 합니다.
- 클러스터를 철저하게 테스트합니다. 클러스터를 테스트하면 필요한 모든 API 호출이 기록됩니다.
- IAM 액세스 분석기를 사용하여 각 인스턴스 프로필에 대한 정책 템플릿을 생성합니다. 자세한 내용은 CloudTrail 로그를 기반으로 정책을 생성하는 AWS 설명서를 참조하십시오.
- 각 인스턴스 프로필에 세분화된 정책을 생성하고 추가합니다.
- 각 인스턴스 프로필에서 허용 정책을 제거합니다.
- 새 정책과 함께 기존 인스턴스 프로필을 사용하여 프로덕션 클러스터를 배포합니다.
IAM 조건 을 정책에 추가하여 조직 보안 요구 사항을 보다 제한적으로 준수할 수 있습니다.