2.5. IAM 정책 및 AWS 인증
기본적으로 설치 프로그램은 클러스터가 작동하는 데 필요한 권한으로 부트스트랩, 컨트롤 플레인 및 컴퓨팅 인스턴스에 대한 인스턴스 프로필을 생성합니다.
그러나 고유한 IAM 역할을 생성하고 설치 프로세스의 일부로 지정할 수 있습니다. 클러스터를 배포하거나 설치 후 클러스터를 관리하려면 자체 역할을 지정해야 할 수 있습니다. 예를 들면 다음과 같습니다.
- 조직의 보안 정책을 사용하려면 더 제한적인 권한 세트를 사용하여 클러스터를 설치해야 합니다.
- 설치 후 클러스터는 추가 서비스에 액세스해야 하는 Operator를 사용하여 구성됩니다.
고유한 IAM 역할을 지정하도록 선택하는 경우 다음 단계를 수행할 수 있습니다.
- 기본 정책으로 시작하고 필요에 따라 조정합니다. 자세한 내용은 " IAM 인스턴스 프로필에 대한 기본 권한"을 참조하십시오.
- AWS Identity and Access Management Access Analyzer(IAM Access Analyzer)를 사용하여 클러스터의 활동을 기반으로 하는 정책 템플릿을 생성합니다. 자세한 내용은 "AWS IAM Analyzer를 사용하여 정책 템플릿 생성"을 참조하십시오.
2.5.1. IAM 인스턴스 프로필에 대한 기본 권한
기본적으로 설치 프로그램은 클러스터가 작동하는 데 필요한 권한이 있는 부트스트랩, 컨트롤 플레인 및 작업자 인스턴스에 대한 IAM 인스턴스 프로필을 생성합니다.
다음 목록은 컨트롤 플레인 및 컴퓨팅 시스템에 대한 기본 권한을 지정합니다.
예 2.14. 컨트롤 플레인 인스턴스 프로필에 대한 기본 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.15. 컴퓨팅 인스턴스 프로파일의 기본 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 조건 을 정책에 추가하여 조직 보안 요구 사항을 보다 제한적으로 준수할 수 있습니다.