3.5. ROSA with HCP ワークフロー
ユーザーは、必要なアカウント全体のロールを作成します。ロールの作成時に、クロスアカウント信頼ポリシーという信頼ポリシーが作成されます。このポリシーは、Red Hat 所有のロールがこのロールを引き受けることを許可するものです。また、EC2 サービス用の信頼ポリシーも作成されます。このポリシーは、EC2 インスタンス上のワークロードがロールを引き受けて認証情報を取得することを許可するものです。AWS は各ロールに対応するアクセス許可ポリシーを割り当てます。
アカウント全体のロールとポリシーを作成した後、ユーザーはクラスターを作成できます。クラスターの作成が開始すると、ユーザーは Operator のロールを作成し、クラスター Operator が AWS API 呼び出しを行えるようにします。これらのロールを、以前に作成された対応する権限ポリシーと、OIDC プロバイダーの信頼ポリシーに割り当てます。Operator ロールは、AWS リソースへのアクセスが必要な Pod を最終的に表すという点で、アカウント全体のロールとは異なります。ユーザーは IAM ロールを Pod に割り当てることができないため、Operator (ひいては Pod) が必要なロールにアクセスできるように、OIDC プロバイダーを使用して信頼ポリシーを作成する必要があります。
対応する権限ポリシーにロールを割り当てたら、最後のステップとして OIDC プロバイダーを作成します。
![cloud experts sts explained creation flow hcp](https://access.redhat.com/webassets/avalon/d/Red_Hat_OpenShift_Service_on_AWS-4-About-ja-JP/images/a4854d24833b81348aa3e4ad83a79e86/cloud-experts-sts-explained_creation_flow_hcp.png)
新しいロールが必要な場合、現在 Red Hat のロールを使用しているワークロードが AWS アカウントのロールを引き受け、AWS STS から一時的な認証情報を取得し、引き受けたロールの権限ポリシーに従ってユーザーの AWS アカウント内の API 呼び出しを使用してアクションの実行を開始します。認証情報は一時的なもので、有効期間は最大 1 時間です。
![cloud experts sts explained highlevel](https://access.redhat.com/webassets/avalon/d/Red_Hat_OpenShift_Service_on_AWS-4-About-ja-JP/images/90e5d35fd8662c09d8bec1827554beab/cloud-experts-sts-explained_highlevel.png)
Operator は、次のプロセスを使用して、タスクを実行するために必要な認証情報を取得します。各 Operator には、Operator のロール、権限ポリシー、および OIDC プロバイダーの信頼ポリシーが割り当てられます。Operator は、ロールとトークンファイル (web_identity_token_file
) を含む JSON Web トークンを OIDC プロバイダーに渡すことによってロールを引き受けます。OIDC プロバイダーは署名された鍵を公開鍵で認証します。公開鍵はクラスターの作成時に作成され、S3 バケットに保存されます。次に、Operator は、署名されたトークンファイル内のサブジェクトがロール信頼ポリシー内のロールと一致することを確認します。このロールは、OIDC プロバイダーが許可されたロールのみを取得できるようにするためのものです。その後、OIDC プロバイダーが一時的な認証情報を Operator に返し、Operator が AWS API 呼び出しを実行できるようにします。視覚的な説明は、次の図を参照してください。
![cloud experts sts explained oidc op roles hcp](https://access.redhat.com/webassets/avalon/d/Red_Hat_OpenShift_Service_on_AWS-4-About-ja-JP/images/04770336c298bb92e1be93de90bc724b/cloud-experts-sts-explained_oidc_op_roles_hcp.png)