6.6. SRE およびサービスアカウントのアクセス
Red Hat Site Reliability Engineering (SRE) による Red Hat OpenShift Service on AWS (ROSA) クラスターへのアクセスについて、アイデンティティーおよびアクセス管理の観点から説明します。
6.6.1. アイデンティティーおよびアクセス管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat SRE チームによるアクセスのほとんどは、自動化された設定管理によりクラスター Operator を使用して行われます。
サブプロセッサー
利用可能なサブプロセスのリストは、Red Hat カスタマーポータルの Red Hat Subprocessor List を参照してください。
6.6.2. SRE クラスターアクセス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat SRE による Red Hat OpenShift Service on AWS クラスターへのアクセスは、複数の必要な認証階層を通じて制御され、すべて厳格な企業ポリシーによって管理されます。クラスターにアクセスするすべての認証試行とクラスター内で行われた変更は、それらのアクションを担当する SRE の特定のアカウント ID とともに監査ログに記録されます。これらの監査ログは、SRE がお客様のクラスターに加えたすべての変更が、Red Hat のマネージドサービスに関するガイドラインで規定されている厳格なポリシーと手順に準拠していることを確認するのに役立ちます。
以下に示す情報は、SRE がお客様のクラスターにアクセスするために実行する必要があるプロセスの概要です。
- Red Hat SRE が、Red Hat SSO (クラウドサービス) から更新された ID トークンを要求します。このリクエストは認証されます。トークンは 15 分間有効です。トークンの有効期限が切れたら、トークンを再度更新して新しいトークンを受け取ることができます。新規トークンへの更新機能には期限はありません。ただし、新しいトークンに更新する機能は、非アクティブな状態が 30 日間続くと無効になります。
- Red Hat SRE が Red Hat VPN に接続します。VPN への認証は、Red Hat Corporate Identity and Access Management (RH IAM) システムによって行います。RH IAM を使用すると、SRE は多要素になり、グループおよび既存のオンボーディングおよびオフボーディングプロセスによって組織ごとに内部管理できるようになります。SRE が認証されて接続されると、SRE はクラウドサービスフリート管理プレーンにアクセスできるようになります。クラウドサービスフリート管理プレーンの変更には何層にもわたる承認が必要であり、厳格な企業ポリシーによって維持されます。
- 承認が完了すると、SRE はフリート管理プレーンにログインし、フリート管理プレーンが作成したサービスアカウントトークンを受け取ります。トークンは 15 分間有効です。トークンは無効になると、削除されます。
フリート管理プレーンにアクセスが許可されると、SRE はネットワーク設定に応じてさまざまな方法を使用してクラスターにアクセスします。
- プライベートまたはパブリッククラスターへのアクセス: リクエストは、ポート 6443 で暗号化された HTTP 接続を使用して、特定のネットワークロードバランサー (NLB) 経由で送信されます。
- PrivateLink クラスターへのアクセス: リクエストは Red Hat Transit Gateway に送信されます。ゲートウェイは各リージョンの Red Hat の VPC に接続します。リクエストを受信する VPC は、ターゲットとなるプライベートクラスターのリージョンによって決まります。VPC 内には、顧客の PrivateLink クラスターへの PrivateLink エンドポイントを含むプライベートサブネットがあります。
6.6.3. Red Hat サポートのアクセス リンクのコピーリンクがクリップボードにコピーされました!
通常、Red Hat の CEE (Customer Experience and Engagement) チームは、クラスターの各部分への読み取り専用アクセスを持ちます。特に、CEE にはコアおよび製品の namespace への制限されたアクセスがありますが、お客様の namespace にはアクセスできません。
ロール | コア namespace | 階層化した製品 namespace | お客様の namespace | AWS アカウント* |
---|---|---|---|---|
OpenShift SRE - 通常操作 [1] | 読み取り: All 書き込み: 非常に限定される | 読み取り: All 書き込み: None | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None |
OpenShift SRE - 昇格されたアクセス [2] (承認されたアクセス によって制御) | 読み取り: All 書き込み: All | 読み取り: All 書き込み: All | 読み取り: All 書き込み: All | 読み取り: All 書き込み: All |
CEE | 読み取り: All 書き込み: None | 読み取り: All 書き込み: None | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None |
お客様管理者 | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None | 読み取り: All 書き込み: All | 読み取り: All 書き込み: All |
お客様ユーザー | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None | 読み取り: Limited [3] 書き込み: Limited [3] | 読み取り: None 書き込み: None |
上記以外 | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None | 読み取り: None 書き込み: None |
- デプロイメントの失敗、クラスターのアップグレード、および適切でないワーカーノードの置き換えなどの一般的なユースケースに対応することに限定されます。
-
アクセスが昇格されたことで、SRE に
cluster-admin
ロールのアクセスレベルが付与され、承認済みアクセスによって制御されます。詳細は、「デフォルトのクラスターロール」および「承認されたアクセス」を参照してください。 - 顧客管理者によって RBAC で許可される内容と、ユーザーが作成した namespace に限定されます。
6.6.4. お客様のアクセス リンクのコピーリンクがクリップボードにコピーされました!
お客様のアクセスは、お客様によって作成される namespace、およびお客様管理者ロールによって RBAC を使用して付与されるパーミッションに限定されます。基礎となるインフラストラクチャーまたは製品 namespace へのアクセスは通常、cluster-admin
アクセスなしでは許可されません。お客様のアクセスと認証の詳細は、このドキュメントの「認証について」セクションを参照してください。
6.6.5. アクセスの承認およびレビュー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat SRE による新しいユーザーアクセスには、管理者の承認が必要です。分離された SRE アカウントまたは転送された SRE アカウントは、自動化されたプロセスで認可されたユーザーとして削除されます。さらに、SRE は、認可されたユーザーリストの管理者の署名を含む、定期的なアクセスのレビューを実行します。
アクセスとアイデンティティーの認可表には、クラスター、アプリケーション、およびインフラストラクチャーリソースへの承認済みアクセスを管理する責任が含まれます。これには、アクセス制御メカニズム、認証、および認可を提供し、リソースへのアクセスを管理するタスクが含まれます。
リソース | サービスの責任 | お客様の責任 |
---|---|---|
ロギング | Red Hat
|
|
アプリケーションのネットワーク | Red Hat
|
|
クラスターネットワーク | Red Hat
|
|
仮想ネットワーク管理 | Red Hat
|
|
仮想ストレージ管理 | Red Hat
|
|
仮想コンピューティング管理 | Red Hat
|
|
AWS ソフトウェア (パブリック AWS サービス) | AWS コンピュート: Amazon EC2 サービスを提供します。これは ROSA のコントロールプレーンとワーカーノードに使用されます。 ストレージ: Amazon EBS を提供します。これは、クラスターのローカルノードストレージと永続ボリュームストレージをプロビジョニングするために、ROSA によって使用されます。 ストレージ: Amazon S3 を提供します。これはサービスの組み込みイメージレジストリーに使用されます。 ネットワーク: AWS Identity and Access Management (IAM) を提供します。これは、お客様のアカウントで実行されている ROSA リソースへのアクセスを制御するために、お客様が使用します。 |
|
ハードウェアと AWS グローバルインフラストラクチャー | AWS
|
|
6.6.6. サービスアカウントが SRE 所有のプロジェクトで AWS IAM ロールを引き受ける方法 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラスターをインストールすると、クラスター固有の Operator AWS Identity and Access Management (IAM) ロールが作成されます。これらの IAM ロールにより、ROSA cluster Operator がコア OpenShift 機能を実行できるようになります。
クラスター Operator はサービスアカウントを使用して IAM ロールを引き受けます。サービスアカウントが IAM ロールを引き受けると、クラスター Operator の Pod でサービスアカウントが使用する一時的な AWS STS 認証情報が提供されます。引き受けたロールに必要な AWS 権限がある場合、サービスアカウントは Pod で AWS SDK 操作を実行できます。
Red Hat SRE が所有するプロジェクトで AWS IAM ロールを引き受けるためのワークフロー
次の図は、SRE が所有するプロジェクトで AWS IAM ロールを引き受けるためのワークフローを示しています。
図6.1 SRE 所有プロジェクトで AWS IAM ロールを引き受けるワークフロー
ワークフローには次の段階があります。
クラスター Operator が実行する各プロジェクト内で、Operator のデプロイメント仕様には、投影されたサービスアカウントトークンのボリュームマウントと、Pod の AWS 認証情報設定が含まれるシークレットがあります。トークンは、オーディエンスおよび時間の制限があります。ROSA は 1 時間ごとに新しいトークンを生成し、AWS SDK は AWS 認証情報の設定を含むマウントされたシークレットを読み取ります。この設定には、マウントされたトークンと AWS IAM ロール ARN へのパスが含まれています。シークレットの認証情報設定には次のものが含まれます。
-
AWS SDK オペレーションの実行に必要なパーミッションを持つ IAM ロールの ARN を含む
$AWS_ARN_ROLE
変数。 -
サービスアカウントの OpenID Connect (OIDC) トークンへの Pod 内のフルパスを含む
$AWS_WEB_IDENTITY_TOKEN_FILE
変数。完全パスは/var/run/secrets/openshift/serviceaccount/token
です。
-
AWS SDK オペレーションの実行に必要なパーミッションを持つ IAM ロールの ARN を含む
-
クラスター Operator が AWS サービス (EC2 など) にアクセスするために AWS IAM ロールを引き受ける必要がある場合、Operator で実行される AWS SDK クライアントコードは
AssumeRoleWithWebIdentity
API を呼び出します。 OIDC トークンは、Pod から OIDC プロバイダーに渡されます。次の要件が満たされている場合は、プロバイダーがサービスアカウント ID を認証します。
- ID 署名は有効であり、秘密鍵によって署名されています。
sts.amazonaws.com
オーディエンスは OIDC トークンにリストされており、OIDC プロバイダーで設定されたオーディエンスと一致します。注記STS クラスターを使用する ROSA では、インストール中に OIDC プロバイダーが作成され、デフォルトでサービスアカウント発行者として設定されます。
sts.amazonaws.com
オーディエンスは、デフォルトで OIDC プロバイダーに設定されています。- OIDC トークンの有効期限が切れていません。
- トークン内の発行者の値には、OIDC プロバイダーの URL が含まれています。
- プロジェクトとサービスアカウントが、引き受ける IAM ロールの信頼ポリシーのスコープ内にある場合は、認可が成功します。
- 認証と認可が成功すると、AWS アクセストークン、秘密鍵、セッショントークンの形式で一時的な AWS STS 認証情報が Pod に渡され、サービスアカウントで使用されます。認証情報を使用することで、IAM ロールで有効になっている AWS アクセス許可がサービスアカウントに一時的に付与されます。
- クラスター Operator が実行されると、Pod で AWS SDK を使用している Operator は、投影されたサービスアカウントへのパスが含まれるシークレットと AWS IAM ロール ARN を OIDC プロバイダーに対して認証するためのシークレットを消費します。OIDC プロバイダーは、AWS API に対する認証に使用できるように、一時的な STS 認証情報を返します。