9장. AWS STS 없이 ROSA 배포
9.1. ROSA의 AWS 사전 요구 사항
Red Hat OpenShift Service on AWS(ROSA)는 Red Hat이 고객의 기존 AWS(Amazon Web Service) 계정에 클러스터를 배포할 수 있는 모델을 제공합니다.
ROSA를 설치하기 전에 사전 요구 사항이 충족되었는지 확인해야 합니다. 이 요구 사항 문서는 AWS STS(Security Token Service)에는 적용되지 않습니다. STS를 사용하는 경우 STS별 요구 사항을 참조하십시오.
AWS STS(Security Token Service)는 강화된 보안을 제공하기 때문에 AWS의 Red Hat OpenShift Service on AWS(ROSA)에 클러스터를 설치하고 상호 작용하는 데 권장되는 인증 정보 모드입니다.
9.1.1. 배포 사전 요구 사항
Red Hat OpenShift Service on AWS (ROSA)를 기존 AWS(Amazon Web Services) 계정에 배포하려면 Red Hat에서 몇 가지 사전 요구 사항을 충족해야 합니다.
Red Hat은 AWS 조직을 사용하여 여러 AWS 계정을 관리할 것을 권장합니다. 고객이 관리하는 AWS 조직은 여러 AWS 계정을 호스팅합니다. 조직에는 모든 계정이 계정 계층에서 참조할 루트 계정이 있습니다.
ROSA 클러스터를 AWS 조직 단위 내의 AWS 계정에서 호스팅하는 것이 모범 사례입니다. AWS 하위 계정에서 액세스할 수 있는 서비스를 관리하는 AWS Organizational Unit에 SCP(서비스 제어 정책)가 생성되고 적용됩니다. SCP는 조직 단위 내의 모든 AWS 하위 계정에 대해 단일 AWS 계정 내에서 사용 가능한 권한에만 적용됩니다. SCP를 단일 AWS 계정에 적용할 수도 있습니다. 고객의 AWS 조직의 다른 모든 계정은 고객이 요구하는 방식으로 관리합니다. Red Hat 사이트 안정성 엔지니어(SRE)는 AWS 조직 내에서 SCP를 제어할 수 없습니다.
9.1.2. 고객 요구 사항
Red Hat OpenShift Service on AWS (ROSA) 클러스터는 배포하기 전에 몇 가지 사전 요구 사항을 충족해야 합니다.
클러스터를 생성하려면 사용자가 가정된 역할 또는 STS 사용자가 아닌 IAM 사용자로 로그인해야 합니다.
9.1.2.1. 계정
- 고객은 AWS 제한이 고객의 AWS 계정 내에서 프로비저닝된 AWS에서 Red Hat OpenShift Service를 지원하기에 충분합니다.
고객의 AWS 계정은 해당 SCP(서비스 제어 정책)가 적용된 고객의 AWS 조직에 있어야 합니다.
참고고객의 계정이 AWS 조직 내에 있거나 SCP를 적용할 필요는 없지만 Red Hat은 제한 없이 SCP에 나열된 모든 조치를 수행할 수 있어야 합니다.
- 고객의 AWS 계정은 Red Hat으로 이전할 수 없습니다.
- 고객은 Red Hat 활동에 AWS 사용 제한을 적용하지 않을 수 있습니다. 제한 사항을 부과하면 Red Hat의 사고 대응 능력을 크게 방해할 수 있습니다.
고객은 동일한 AWS 계정 내에 기본 AWS 서비스를 배포할 수 있습니다.
참고고객은 AWS 및 기타 Red Hat 지원 서비스에 Red Hat OpenShift Service를 호스팅하는 VPC와 별도로 VPC(Virtual Private Cloud)에 리소스를 배포하는 것이 좋지만 필수는 아닙니다.
9.1.2.2. 액세스 요구 사항
AWS에서 Red Hat OpenShift Service를 적절하게 관리하려면 Red Hat은 관리자 역할에 항상
AdministratorAccess정책을 적용해야 합니다. 이 요구 사항은 AWS STS(Security Token Service)를 사용하는 경우에는 적용되지 않습니다.참고이 정책은 고객이 제공하는 AWS 계정의 리소스를 변경할 수 있는 권한 및 기능만 Red Hat에 제공합니다.
- Red Hat은 고객이 제공하는 AWS 계정에 대한 AWS 콘솔 액세스 권한이 있어야 합니다. 이 액세스는 Red Hat에서 보호 및 관리합니다.
- 고객은 AWS 계정을 사용하여 AWS 클러스터의 Red Hat OpenShift Service 내에서 권한을 강화해서는 안 됩니다.
-
rosaCLI 유틸리티 또는 OpenShift Cluster Manager Hybrid Cloud Console 에서 사용할 수 있는 작업은 고객의 AWS 계정에서 직접 수행할 수 없습니다.
9.1.2.3. 지원 요구사항
- Red Hat은 고객이 최소한 AWS의 비즈니스 지원을 받을 것을 권장합니다.
- Red Hat은 고객으로부터 AWS 지원을 요청할 권한을 갖습니다.
- Red Hat은 고객 계정의 AWS 리소스 제한을 요청할 권한이 있습니다.
- Red Hat은 이 요구 사항 섹션에 달리 지정하지 않는 한 AWS 클러스터의 모든 Red Hat OpenShift Service의 제한 사항, 제한 사항, 기대치 및 기본값을 동일한 방식으로 관리합니다.
9.1.2.4. 보안 요구사항
- 볼륨 스냅샷은 고객의 AWS 계정 및 고객 지정 리전 내에 유지됩니다.
- Red Hat은 허용된 IP 주소에서 EC2 호스트 및 API 서버에 대한 수신 액세스 권한이 있어야 합니다.
- Red Hat은 시스템 및 감사 로그를 Red Hat 관리 중앙 로깅 스택으로 전달할 수 있는 송신이 있어야 합니다.
9.1.3. 필요한 고객 절차
ROSA(Red Hat OpenShift Service on AWS)를 배포하기 전에 다음 단계를 완료합니다.
절차
- 고객이 AWS 조직을 사용하는 경우 조직 내에서 AWS 계정을 사용하거나 새 조직을 생성해야 합니다.
- Red Hat이 필요한 작업을 수행할 수 있도록 하려면 SCP(서비스 제어 정책)를 생성하거나 AWS 계정에 적용되지 않았는지 확인해야 합니다.
- AWS 계정에 SCP를 연결합니다.
- 환경 설정에 대한 ROSA 절차를 따르십시오.
9.1.3.1. SCP(서비스 제어 정책)에 대한 최소 유효 권한 세트
SCP(서비스 제어 정책)는 조직 내의 권한을 관리하는 조직 정책의 유형입니다. SCP는 조직 내의 계정이 정의된 액세스 제어 지침에 따라 유지되도록 합니다. 이러한 정책은 AWS 조직에서 유지 관리되며 연결된 AWS 계정 내에서 사용 가능한 서비스를 제어합니다. SCP 관리는 고객의 책임입니다.
AWS STS(Security Token Service)를 사용할 때는 최소 SCP 요구 사항이 적용되지 않습니다. STS에 대한 자세한 내용은 STS를 사용하는 ROSA의 AWS 사전 요구 사항을 참조하십시오.
SCP(서비스 제어 정책)에서 이러한 필수 권한을 제한하지 않는지 확인합니다.
| Service | 작업 | 효과 | |
|---|---|---|---|
| 필수 항목 | Amazon EC2 | All | 허용 |
| Amazon EC2 Auto Scaling | All | 허용 | |
| Amazon S3 | All | 허용 | |
| ID 및 액세스 관리 | All | 허용 | |
| Elastic Load Balancing | All | 허용 | |
| Elastic Load Balancing V2 | All | 허용 | |
| Amazon CloudWatch | All | 허용 | |
| Amazon CloudWatch Events | All | 허용 | |
| Amazon CloudWatch Logs | All | 허용 | |
| AWS 지원 | All | 허용 | |
| AWS 키 관리 서비스 | All | 허용 | |
| AWS 보안 토큰 서비스 | All | 허용 | |
| AWS Marketplace | Subscription 구독 취소 서브스크립션 보기 | 허용 | |
| AWS 리소스 태그 | All | 허용 | |
| AWS Route53 DNS | All | 허용 | |
| AWS 서비스 할당량 | ListServices GetRequestedServiceQuotaChange GetServiceQuota RequestServiceQuotaIncrease ListServiceQuotas | 허용 | |
| 선택 사항 | AWS billinging | ViewAccount Viewbilling ViewUsage | 허용 |
| AWS Cost and Usage Report | All | 허용 | |
| AWS Cost Explorer Services | All | 허용 |
추가 리소스
9.1.4. AWS에 대한 Red Hat 관리 IAM 참조
Red Hat은 IAM 정책, IAM 사용자 및 IAM 역할 등 AWS(Amazon Web Services) 리소스를 생성하고 관리합니다.
9.1.4.1. IAM 정책
IAM 정책은 AWS에서 Red Hat OpenShift Service 기능 변경으로 변경될 수 있습니다.
AdministratorAccess정책은 관리 역할에서 사용합니다. 이 정책은 Red Hat에 고객의 AWS 계정에서 ROSA(Red Hat OpenShift Service on AWS) 클러스터를 관리하는 데 필요한 액세스 권한을 제공합니다.{ "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow" } ] }
9.1.4.2. IAM 사용자
osdManagedAdmin 사용자는 ROSA를 고객의 AWS 계정에 설치한 직후 생성됩니다.
9.1.5. 프로비저닝된 AWS 인프라
이는 배포된 Red Hat OpenShift Service on AWS(ROSA) 클러스터에 프로비저닝된 AWS(Amazon Web Services) 구성 요소에 대한 개요입니다. 프로비저닝된 모든 AWS 구성 요소의 자세한 목록은 OpenShift Container Platform 설명서 를 참조하십시오.
9.1.5.1. EC2 인스턴스
AWS EC2 인스턴스는 AWS 퍼블릭 클라우드에 ROSA의 컨트롤 플레인 및 데이터 플레인 기능을 배포하는 데 필요합니다.
인스턴스 유형은 작업자 노드 수에 따라 컨트롤 플레인 및 인프라 노드에 따라 다를 수 있습니다. 최소한 다음 EC2 인스턴스가 배포됩니다.
-
3개의
m5.2xlarge컨트롤 플레인 노드 -
r5.xlarge인프라 노드 2개 -
2개의
m5.xlarge사용자 정의 작업자 노드
작업자 노드 수에 대한 자세한 내용은 이 페이지의 "ECDHE 리소스" 섹션에 나열된 "Limits and scalability" 주제의 초기 계획 고려 사항에 대한 정보를 참조하십시오.
9.1.5.2. AWS EBS(Elastic Block Store) 스토리지
Amazon EBS 블록 스토리지는 로컬 노드 스토리지 및 영구 볼륨 스토리지 모두에 사용됩니다.
각 EC2 인스턴스의 볼륨 요구 사항:
컨트롤 플레인 볼륨
- 크기: 350GB
- 유형: io1
- 초당 입력/출력 작업: 1000개
인프라 볼륨
- 크기: 300GB
- 유형: gp3
- 초당 입력/출력 작업: 900
작업자 볼륨
- 크기: 300GB
- 유형: gp3
- 초당 입력/출력 작업: 900
OpenShift Container Platform 4.11 릴리스 전에 배포된 클러스터는 기본적으로 gp2 유형 스토리지를 사용합니다.
9.1.5.3. Elastic Load Balancing
API용 최대 두 개의 NLB(Network Load Balancer)와 애플리케이션 라우터용 최대 2개의 클래식 로드 밸런서(CLB)입니다. 자세한 내용은 AWS에 대한 ELB 설명서를 참조하십시오.
9.1.5.4. S3 스토리지
이미지 레지스트리는 AWS S3 스토리지에서 지원합니다. 리소스 정리는 S3 사용량 및 클러스터 성능을 최적화하기 위해 정기적으로 수행됩니다.
일반적인 크기가 2TB인 경우 각각 두 개의 버킷이 필요합니다.
9.1.5.5. VPC
고객은 클러스터당 하나의 VPC를 확인해야 합니다. 또한 VPC에는 다음 구성이 필요합니다.
서브넷: 단일 가용성 영역이 있는 클러스터의 두 서브넷 또는 여러 가용성 영역이 있는 클러스터의 경우 6개의 서브넷입니다.
참고공용 서브넷 은 인터넷 게이트웨이를 통해 인터넷에 직접 연결됩니다. 사설 서브넷 은 NAT(네트워크 주소 변환) 게이트웨이를 통해 인터넷에 연결됩니다.
- 라우팅 테이블: 프라이빗 서브넷당 하나의 라우팅 테이블과 클러스터당 하나의 추가 테이블입니다.
- 인터넷 게이트웨이: 클러스터당 하나의 인터넷 게이트웨이.
- NAT 게이트웨이: 퍼블릭 서브넷당 하나의 NAT 게이트웨이.
9.1.5.5.1. 샘플 VPC 아키텍처

9.1.5.6. 보안 그룹
AWS 보안 그룹은 프로토콜 및 포트 액세스 수준의 보안을 제공하며 EC2 인스턴스 및 Elastic Load Balancer와 연결됩니다. 각 보안 그룹에는 EC2 인스턴스가 들어오고 나가는 트래픽을 필터링하는 규칙 세트가 포함되어 있습니다. 네트워크에서 OpenShift 설치에 필요한 포트가 열려 있고 호스트 간 액세스를 허용하도록 구성되어 있는지 확인해야 합니다.
| 그룹 | 유형 | IP 프로토콜 | 포트 범위 |
|---|---|---|---|
| MasterSecurityGroup |
|
|
|
|
|
| ||
|
|
| ||
|
|
| ||
| WorkerSecurityGroup |
|
|
|
|
|
| ||
| BootstrapSecurityGroup |
|
|
|
|
|
|
9.1.6. AWS 방화벽 사전 요구 사항
PrivateLink를 사용하여 배포된 ROSA 클러스터만 방화벽을 사용하여 송신 트래픽을 제어할 수 있습니다.
이 섹션에서는 AWS 클러스터의 Red Hat OpenShift Service에서 송신 트래픽을 제어하는 데 필요한 세부 정보를 제공합니다. 방화벽을 사용하여 송신 트래픽을 제어하는 경우 아래의 도메인 및 포트 조합에 대한 액세스 권한을 부여하도록 방화벽을 구성해야 합니다. AWS의 Red Hat OpenShift Service에는 완전히 관리되는 OpenShift 서비스를 제공하기 위해 이 액세스 권한이 필요합니다.
절차
패키지 및 툴을 설치 및 다운로드하는 데 사용되는 다음 URL을 허용 목록에 추가하십시오.
domain 포트 함수 registry.redhat.io443
코어 컨테이너 이미지를 제공합니다.
quay.io443
코어 컨테이너 이미지를 제공합니다.
*.quay.io443
코어 컨테이너 이미지를 제공합니다.
sso.redhat.com443, 80
필수 항목입니다.
https://console.redhat.com/openshift사이트에서는sso.redhat.com의 인증을 사용하여 풀 시크릿을 다운로드하고 Red Hat SaaS 솔루션을 사용하여 서브스크립션, 클러스터 인벤토리, 예상 보고 등을 쉽게 모니터링할 수 있습니다.quay-registry.s3.amazonaws.com443
코어 컨테이너 이미지를 제공합니다.
ocm-quay-production-s3.s3.amazonaws.com443
코어 컨테이너 이미지를 제공합니다.
quayio-production-s3.s3.amazonaws.com443
코어 컨테이너 이미지를 제공합니다.
cart-rhcos-ci.s3.amazonaws.com443
RHCOS(Red Hat Enterprise Linux CoreOS) 이미지를 제공합니다.
openshift.org443
RHCOS(Red Hat Enterprise Linux CoreOS) 이미지를 제공합니다.
registry.access.redhat.com443
개발자가 OpenShift 및 Kubernetes에서 빌드하는 데 도움이 되는
odoCLI 툴에 대한 액세스를 제공합니다.console.redhat.com443, 80
필수 항목입니다. 클러스터와 OpenShift Console Manager 간의 상호 작용을 통해 예약 업그레이드와 같은 기능을 활성화할 수 있습니다.
sso.redhat.com443
https://console.redhat.com/openshift사이트에서sso.redhat.com의 인증을 사용합니다.pull.q1w2.quay.rhcloud.com443
quay.io를 사용할 수 없는 경우 코어 컨테이너 이미지를 폴백으로 제공합니다.
.q1w2.quay.rhcloud.com443
quay.io를 사용할 수 없는 경우 코어 컨테이너 이미지를 폴백으로 제공합니다.
www.okd.io443
openshift.org사이트는www.okd.io을 통해 리디렉션됩니다.www.redhat.com443, 80
sso.redhat.com사이트는www.redhat.com을 통해 리디렉션됩니다.aws.amazon.com443
iam.amazonaws.com및sts.amazonaws.com사이트는aws.amazon.com을 통해 리디렉션됩니다.catalog.redhat.com443
registry.access.redhat.com및https://registry.redhat.io사이트는catalog.redhat.com을 통해 리디렉션됩니다.허용 목록에
quay.io와 같은 사이트를 추가할 때*.quay.io와 같은 와일드카드 항목을 거부 목록에 추가하지 마십시오. 대부분의 경우 이미지 레지스트리는 CDN(Content deliver network)을 사용하여 이미지를 제공합니다. 방화벽 블록에 액세스하는 경우 초기 다운로드 요청이cdn01.quay.io와 같은 호스트 이름에 리디렉션될 때 이미지 다운로드가 거부됩니다.cdn01.quay.io와 같은 CDN 호스트 이름은 허용 목록에.quay.io와 같은 와일드카드 항목을 추가할 때 적용됩니다.다음 Telemetry URL을 허용 목록에 추가합니다.
domain 포트 함수 cert-api.access.redhat.com443
Telemetry에 필요합니다.
api.access.redhat.com443
Telemetry에 필요합니다.
infogw.api.openshift.com443
Telemetry에 필요합니다.
console.redhat.com443
Telemetry 및 Red Hat Insights에 필요합니다.
observatorium.api.openshift.com443
관리형 OpenShift별 Telemetry에 필요합니다.
관리형 클러스터를 사용하려면 Telemetry를 통해 Red Hat이 문제에 보다 신속하게 대응하고, 고객 지원을 개선하며, 제품 업그레이드가 클러스터에 미치는 영향을 보다 잘 이해할 수 있어야 합니다. Red Hat에서 원격 상태 모니터링 데이터를 사용하는 방법에 대한 자세한 내용은 원격 상태 모니터링 정보를 참조하십시오.
다음 AWS(Amazon Web Services) API URls를 나열하십시오.
domain 포트 함수 .amazonaws.com443
AWS 서비스 및 리소스에 액세스하는데 필요합니다.
또는 AWS(Amazon Web Services) API에 와일드카드를 사용하지 않도록 선택하는 경우 다음 URL을 허용해야 합니다.
domain 포트 함수 ec2.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
events.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
iam.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
route53.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
sts.amazonaws.com443
AWS STS에 글로벌 끝점을 사용하도록 구성된 클러스터의 경우 AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
sts.<aws_region>.amazonaws.com443
AWS STS에 지역화된 끝점을 사용하도록 구성된 클러스터의 경우 AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다. 자세한 내용은 AWS STS 지역화된 엔드 포인트에서 참조하십시오.
tagging.us-east-1.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다. 이 끝점은 클러스터가 배포된 지역에 관계없이 항상 us-east-1입니다.
ec2.<aws_region>.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
elasticloadbalancing.<aws_region>.amazonaws.com443
AWS 환경에서 클러스터를 설치하고 관리하는 데 사용됩니다.
servicequotas.<aws_region>.amazonaws.com443, 80
필수 항목입니다. 서비스 배포에 대한 할당량을 확인하는 데 사용됩니다.
tagging.<aws_region>.amazonaws.com443, 80
태그 형태로 AWS 리소스에 대한 메타데이터를 할당할 수 있습니다.
다음 OpenShift URL을 허용 목록에 추가합니다.
domain 포트 함수 mirror.openshift.com443
미러링된 설치 콘텐츠 및 이미지에 액세스하는 데 사용됩니다. 이 사이트는 릴리스 이미지 서명의 소스이기도 하지만 CVO(Cluster Version Operator)에는 단일 기능 소스만 필요합니다.
storage.googleapis.com/openshift-release(권장)443
mirror.openshift.com/에 대한 대체 사이트입니다. 클러스터에서 사용하는 플랫폼 릴리스 서명을 다운로드하여 quay.io에서 가져올 이미지를 확인하는 데 사용됩니다.
api.openshift.com443
클러스터에 사용 가능한 업데이트가 있는지 확인하는 데 사용됩니다.
Allowlist the following site reliability engineering (SRE) 및 관리 URL:
domain 포트 함수 api.pagerduty.com443
이 경고 서비스는 클러스터 내 alertmanager가 수행할 이벤트의 Red Hat SRE에 알리는 경고를 보내는 데 사용됩니다.
events.pagerduty.com443
이 경고 서비스는 클러스터 내 alertmanager가 수행할 이벤트의 Red Hat SRE에 알리는 경고를 보내는 데 사용됩니다.
api.deadmanssnitch.com443
AWS에서 Red Hat OpenShift Service에서 클러스터가 사용 가능하고 실행 중인지를 나타내는 주기적인 ping을 보내는 데 사용하는 경고 서비스입니다.
nosnch.in443
AWS에서 Red Hat OpenShift Service에서 클러스터가 사용 가능하고 실행 중인지를 나타내는 주기적인 ping을 보내는 데 사용하는 경고 서비스입니다.
*.osdsecuritylogs..osdsecuritylogs.complunkcloud.comcomsplunkcloud.comOR inputs1inputs2.osdsecuritylogs.splunkcloud.cominputs4.osdsecuritylogs.splunkcloud.cominputs5.osdsecuritylogs.splunkcloud.cominputs6.osdsecuritylogs.splunkclouds.cominputs.splunkcloud.com storeds.complunkcloud.com9997
splunk-forwarder-operator에서 로그 기반 경고에 사용할 로깅 전달 끝점으로 사용합니다.http-inputs-osdsecuritylogs.splunkcloud.com443
필수 항목입니다.
splunk-forwarder-operator에서 로그 기반 경고에 사용할 로깅 전달 끝점으로 사용합니다.SFTP.access.redhat.com(권장)22
클러스터 문제를 해결하기 위해 진단 로그를 업로드하기 위해
must-gather-operator에서 사용하는 SFTP 서버입니다.AWS(Amazon Web Services) API에 와일드카드를 허용하지 않은 경우 내부 OpenShift 레지스트리에 사용된 S3 버킷도 허용해야 합니다. 해당 끝점을 검색하려면 클러스터가 성공적으로 프로비저닝된 후 다음 명령을 실행합니다.
$ oc -n openshift-image-registry get pod -l docker-registry=default -o json | jq '.items[].spec.containers[].env[] | select(.name=="REGISTRY_STORAGE_S3_BUCKET")'
S3 끝점은 '<cluster-name>-<random-string>-image-registry-<cluster-region>-<random-string>.s3.dualstack.<cluster-region>.amazonaws.com 형식이어야 합니다.
- 빌드에 필요한 언어 또는 프레임 워크에 대한 리소스를 제공하는 사이트를 허용 목록에 추가합니다.
- OpenShift에 사용된 언어 및 프레임워크에 의존하는 아웃바운드 URL을 허용 목록에 추가합니다. 방화벽 또는 프록시에서 허용되는 권장 URL 목록은 OpenShift Outbound URL을 참조하십시오.