Private Cluster 用 Network (Egress Lockdown) Private Cluster 用 Network Internet Gateway Internet Outbound [1] NAT Gateway S3 VPC Endpoint ECR DKR VPC Endpoint ROSA Cluster ROSA Cluster ROSA Cluster ECR API VPC Endpoint STC VPC Endpoint Internet 上の Registry からコンポーネントをダウ ンロードします。 [1] 2.12. Firewall prerequisites for Red Hat OpenShift Service on AWS AWS閉域網内の Registry からコンポーネントをダ ウンロードします。
ンと同じ仕組みで、ROSA上にホストされている。 Red Hat Hybrid Cloud Console[1] ログイン ログイン インターネットアクセス Red Hat AWS Account User AWS Account AWSレベルの状況確認 ROSA VPC ROSA node 拡張 / Upgrade 操作 OpenShift Console (GUI) へのアクセス アプリ開発者 / 管理者 アプリ 使用者 AssumeRole ユーザー用 IAMRole インストール、ステータスチェック NLB A) Public (インターネット公開) or B) Private Private Link User Controlplane A) Public (Red Hat が Endpoint をホスト) or B) Private (VPC Endpoint) AZ 1 AZ 2 インストール/アップデート コンポーネント取得 AZ 3 A)インターネット上の Registry or B) AWS閉域網内 ECR (Red Hat がホスト。Red Hat 提供 コンポーネントのみ) ROSA Cluster OpenShift CLI へのアクセス (oc / kubectl CLI) [1] HCC と略されたり、もう少し正確に OCM(OpenShift Cluster Manager) と呼ばれる事もあります。OCMは HCC 内のOpenShift Cluster 全般を管理するアプリです。
Console ROSA 上のアプリケーションへのインターフェイスを提供している AWS NLB. rosa Red Hat Hybrid Cloud Console https://console.redhat.com/ aws AWS Management Console https://console.aws.amazon.com/
API Server の Endpoint はインターネットに公開 Application users AWS Cloud Red Hat Managed Endpoint ROSA VPC Amazon Route 53 NLB VPC End Point Service NAT Gateway NAT Gateway NAT Gateway AZ 1 AZ 2 AZ 3 VPC End Point ・Public Cluster として作成した場合の構成。 • OpenShift (Kubernetes) API 用の エンドポイント カスタマーアプリケーション の両方が、インターネットに公開 された構成 Private Link User Controlplane • Internet Gateway
Application users AWS Cloud Red Hat AWS Account Internet Gateway Amazon Route 53 ROSA VPC Customer VPC NLB public subnet VPC End Point Service Private Link User Controlplane public subnet public subnet Transit Gateway VPC End Point NAT Gateway NAT Gateway NAT Gateway private subnet private subnet private subnet 管理コマンドの内、rosa コマンドはインターネッ トアクセスを必要とする private subnet rosa kubectl / oc Developers / Admin users. Kubernetes API Server の Endpoint は VPC Endpint とし て作成され、インターネットに公 開されない。 AZ 1 AZ 2 ・Public Cluster として作成した後、OpenShift (Kubernetes) API 用の Endpoint を Privateに変更 AZ 3
Red Hat Managed Endpoint Amazon Route 53 ROSA VPC 切り替え NLB 内向き Endpoint Private Link User Controlplane VPC End Point Service public subnet public subnet public subnet NAT Gateway NAT Gateway NAT Gateway private subnet private subnet private subnet AZ 1 AZ 2 AZ 3 VPC End Point 内向き Endpoint kubectl / oc
(OpenShift Console含む) の Endpoint は Private インストール時に Public Cluster として導入す る場合は、Public Subent / NAT Gateway は 必要 internet AWS Cloud Red Hat AWS Account Internet Gateway Amazon Route 53 ROSA VPC Customer VPC NLB public subnet VPC End Point Service Private Link User Controlplane public subnet public subnet Transit Gateway VPC End Point NAT Gateway NAT Gateway NAT Gateway private subnet private subnet private subnet 管理コマンドの内、rosa コマンドはインターネッ トアクセスを常に必要と する private subnet rosa kubectl / oc Kubernetes API Server の Endpoint は VPC Endpint とし て作成され、インターネットに 公開されない。 Developers / Admin users. AZ 1 AZ 2 AZ 3 ・テスト/ PoC目的では、Public Cluster としてインストールした方が使い勝手が良い。 ・後から Private に変更すれば、セキュリティを高めつつ、コンポーネントのアップーデートに必要なアウトバウンドのアクセス経路は維持される。 Application users
NAT Gateway は必要な い。 Red Hat AWS Account internet への outbound は必要 (パッチ、バージョンアップなど) Customer AWS Account internet Internet Gateway Amazon Route 53 ROSA VPC Customer VPC NLB VPC End Point Service Private Link Transit Gateway VPC End Point Red Hat Managed System oc / kubectl rosa Pod Pod Pod Developers / Admin users. AZ 1 AZ 2 AZ 3 Application users ・初期状態から Private クラスターとしてインストールするので、ROSA VPC 内に Private Subnet が存在していない。 ・インストールやアップデート時のコンポーネントの取得のために、何らかのルートでインターネットアクセスを許可するか、Egress Lockdown構成を取る必用がある
ばこのようなネットワーク構成が推奨される。機能として分離 させる事が必須ではない。 Amazon Route 53 Egress VPC public subnet NAT Gateway Internet Gateway public subnet NAT Gateway ROSA VPC private subnet private subnet private subnet private subnet AZ 1 AZ 2 AZ 3 ROSA Private Cluster TGW ENI private subnet TGW ENI TGW ENI TGW ENI Transit Gateway デフォルトでは、Install 用のパッケージや、アッ プデートなどを行うため、インターネットへのア クセスが必要になる。 ※ Install 時に Egress Lockdown オプションを使 うと、Red Hat 提供のパッケージについては、イ ンターネットへの直接アクセスは必要なくなる。 control plane NLB 2AZ構成を取っているのは AZ の 冗長化のため。 ・ROSAクラスタのインストール用/アップデート用イメージと、Operator Hub の提供イメージなどを、インターネット経由で取得する場合の構成 ・Inbound のトラフィックは許可する必用はない。 TGW ENI
ために必ず必要というわけではない) Amazon Route 53 Egress VPC public subnet NAT Gateway Internet Gateway public subnet NAT Gateway ROSA VPC transit gateway subnet control plane NLB private subnet private subnet private subnet AZ 1 AZ 2 AZ 3 ROSA Private Cluster TGW ENI transit gateway subnet transit gateway subnet transit gateway subnet transit gateway subnet TGW ENI TGW ENI TGW ENI TGW ENI Transit Gateway https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html ROSA の VPC にtransit gateway 用に専用にサブネットを作成。Transit Gateway 専用のサブネットはデバッグなどを考えたベストプラクティスとされている 。
を Outbound のトラフィック を制御するために設置。 Amazon Route 53 Whitelist で ROSA や 3rd Party Operator が必要とするアクセスだけを許可する。 Egress VPC public subnet NAT Gateway Internet Gateway public subnet NAT Gateway ROSA VPC private subnet transit gateway subnet private subnet private subnet private subnet private subnet AZ 1 AZ 2 AZ 3 transit gateway subnet transit gateway subnet TGW ENI In this case, using two AZs for high availability control plane (Red Hat VPC) ROSA Private Cluster TGW ENI TGW ENI NLB TGW ENI TGW ENI Transit Gateway transit gateway subnet transit gateway subnet HTTP または HTTPS プロキシのアドレスを指定してく ださい。 HTTPS プロキシを使用する場合は、プロキシの CA 証 明書を ROSA の信頼バンドルに追加する必要がありま TGW ENI TGW ENI す。(透過型プロキシを使用する場合も、信頼バンドル への CA 証明書の追加が必要です。) Egress VPC の中に、OutBound のアクセス先を制御するために Proxy Server を導入。必用なアクセス先はドキュメントに記載されている。 https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/html/prepare_your_environment/rosa-sts-aws-prereqs#rosa-hcp-firewall-prerequisites_rosa-sts-aws-prereqs
を置いた 専用の VPC インバウンド・トラフィック専用の VPC AWS Cloud Firewall / Inspection VPC Inbound VPC Internet Gateway AZ 1 GWLB Endpoint TGW ENI TGW ENI NLB AZ 2 TGW ENI AZ 1 Firewall equipment AZ 2 Gateway Load Balancer Akamai WAF TGW ENI Firewall equipment Amazon Route 53 GWLB Endpoint Transit Gateway アウトバウンドの出口専用の VPC ROSA VPC Outbound VPC AZ 1 AZ 1 Internet Gateway AZ 2 NAT Gateway NAT Gateway NLB (2nd IngressController) NLB AZ 2 AZ 3 TGW ENI TGW ENI TGW ENI AWS SRA https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/security-reference-architecture/network.html TGW ENI TGW ENI control plane
Outbound を Proxy や Firewall で絞るためには、このガイドに沿った宛先を許可する必要があります。 https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/html/prepare_your_environment/rosa-hcpprereqs#rosa-hcp-firewall-prerequisites_rosa-hcp-prereqs • 2.9.1.1 Domains for installation packages and tools • 2.9.1.2 Domains for telemetry • 2.9.1.3 Domains for Amazon Web Services (AWS) APIs • 2.9.1.4 Domains for your workload • 2.9.1.5 Optional domains to enable third-party content • 2.9.1.6 Outbound firewall rules for the ROSA CLI for clusters with egress zero • 2.9.1.7 Outbound firewall rules from Red Hat Hybrid Cloud Console for clusters with egress zero 注: “Egress ロックダウン” と呼ばれる、ROSAを含む Red Hat 提供コンポーネントに関しては、AWS内の Red Hat Managed の ECR からダウンロード を行い、インターネットアクセス無しの Closed の環境を作成する方法もあります。
or 内部のみ HTTP(S) OpenShift Console へのアクセスも、 ユーザーのアプリも同じ NLBを通過 NLB (default) [1] ユーザーアプリ ユーザー・リクエスト (HOST header 値) ユーザー・リクエスト (Host Header値) (console-openshift-console.[ROSA domain]) (www.example.com) User取得ドメイン (www.example.com) IngressController CNAME ROSA 用 domain NAT Gateway (console-openshiftconsole.[ROSAdomain]) A Record ROSA 用 domain [userapp route名].[ROSAdomain] A Record NodePort OpenShift Console ユーザー APP Pod Service ClusterIP Service ClusterIP Route Route openshift-console user namespace 基本的にユーザーが変更して はいけないエリア ClusterIP [3] Router Pod [4] Service LoadBalancer opensfhit-ingress NLB IP (abc.region.amazon.aws.com) NLB IP (abc.region.amazon.aws.com) NLB Target NLB Target Router Pod Router Pod Route (console-openshift- Route (www.example.com) console.[ROSA domain]) OpenShnift Cosole Pod User Application Pod ROSA では、Route の変更を許可され ていないので OpenShift Console につ いては 独自ドメインは使用できない。 ユーザーアプリは、Route を自由に設 定できるので、独自ドメインが利用で きる
HTTP) HTTP(S) TCP(non HTTP) ROSA 標準では、”Service” Type=LoadBalancer に対して、 CLB が生成されます。 Internet Gateway CLB [2] tcp 9000 tcp 9001 NLB (default) [1] CLB [2] ROSA 標準の IngressController NAT Gateway NodePort NodePort ClusterIP ClusterIP TCP App1 Pod Listen 9000 TCP App2 Pod Listen 9001 Service LoadBalancer Service LoadBalancer namespace namespace NodePort ClusterIP HTTP App1 Pod HTTP App2 Pod Service ClusterIP Service ClusterIP Route Route Service LoadBalancer namespace namespace opensfhit-ingress [3] Router Pod [4] [1] For HTTP(S) workload, the default NLB is shared among HTTP(S) applications. The incoming traffic is routed ro router pods whicht route the traffic to each pod based on HTTP host header. [2] CLB is deployed for each TCP(non HTTP) app. The CLB can’t be shared between different Pod applications. [3] With OpenShift, Router Pods posses pod ip addresses and use them to access Pods for better performance. [4] Two Router pods are deployed by default for redundancy
Account には渡さず、特定の AWS Account で一括管理したい 時に使用される構成です。 AWS organization ROSA Cluster の Zone を作成 Route53 User AWS Account-A (Owner) User AWS Account-B (Participant) AWS Managed Policy Resource Access Manager ROSASharedVPCEndpointPolicy ROSASharedVPCRoute53Policy Resource Access Manager を使用して public network / private network を AWS Account B と共有 AWS Managed Policy ROSA…..Policy ROSA…Policy ROSA…Policy ROSA Cluster Worker Nodes private subnet rosa create dns-domain rosa create oidc-config rosa create account-roles rosa create operator-roles rosa create cluster Route53 Role VPC Endpoint VPC End Point Role Networkリソース は、Account A の AWS アカウ ントで、集中的に管理されます。 Installer Role Ingress Operator Cloud Credential Role Assume Role Network 関連の AWS Roles (AWS Account B の Role から AssumeRole を許可) ControlPlane Operator Cloud Credential Role ROSA Cluster 作成関連の AWS Roles https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/html/install_rosa_with_hcp_clusters/rosa-hcp-shared-vpc-config
provider of enterprise open source software solutions. Award- facebook.com/redhatinc winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. 44 twitter.com/RedHat