22.2. mint モードの Cloud Credential Operator について
Cloud Credential Operator (CCO) を mint モードで使用すると、クラスター内のコンポーネントの認証情報を作成およびリコンサイルできます。
mint モードは、OpenShift Container Platform をサポートするプラットフォーム上の OpenShift Container Platform のデフォルトの CCO 認証情報モードです。mint モードは、Amazon Web Services (AWS) および Google Cloud クラスターをサポートします。
22.2.1. mint モードの認証情報管理について リンクのコピーリンクがクリップボードにコピーされました!
Cloud Credential Operator (CCO) を mint モードで使用する場合は、CCO がプロバイダー認証情報をどのように使用するかについて理解する必要があります。
CCO を mint モードで使用するクラスターの場合、管理者レベルの認証情報は kube-system namespace に保存されます。CCO は、admin 認証情報を使用してクラスター内の CredentialsRequest オブジェクトを処理し、制限されたアクセス許可を持つコンポーネントのユーザーを作成します。
mint モードでは、各クラスターコンポーネントには、必要な特定のアクセス許可のみが与えられます。クラウド認証情報の調整は自動的かつ継続的に行われるため、コンポーネントは追加の認証情報や権限を必要とするアクションを実行できます。
たとえば、マイナーバージョンのクラスターアップデート (OpenShift Container Platform 4.22 から 5.0 へのアップデートなど) には、クラスターコンポーネント用の更新された CredentialsRequest リソースが含まれる場合があります。mint モードで動作する CCO は、admin 認証情報を使用して CredentialsRequest リソースを処理し、更新された認証要件を満たすために制限された権限を持つユーザーを作成します。
デフォルトでは、mint モードでは、admin 認証情報をクラスターの kube-system namespace に保存する必要があります。このアプローチが組織のセキュリティー要件を満たさない場合は、クラスターのインストール後に認証情報を削除できます。詳細は、「クラウドプロバイダーの認証情報の削除」を参照してください。
22.2.1.1. mint モードの権限要件 リンクのコピーリンクがクリップボードにコピーされました!
mint モードで Cloud Credential Operator (CCO) を使用する場合、指定する認証情報が OpenShift Container Platform を実行し、インストールしているクラウドの各種要件を満たしていることを確認してください。指定される認証情報が mint モードで不十分な場合、CCO は IAM ユーザーを作成できません。
22.2.1.1.1. 必要な AWS パーミッション リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) の mint モードに指定する認証情報には、次の権限が必要です。
-
iam:CreateAccessKey -
iam:CreateUser -
iam:DeleteAccessKey -
iam:DeleteUser -
iam:DeleteUserPolicy -
iam:GetUser -
iam:GetUserPolicy -
iam:ListAccessKeys -
iam:PutUserPolicy -
iam:TagUser -
iam:SimulatePrincipalPolicy
22.2.1.1.2. 必要な Google Cloud 権限 リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud の mint モードに指定する認証情報には、次の権限が必要です。
-
resourcemanager.projects.get -
serviceusage.services.list -
iam.serviceAccountKeys.create -
iam.serviceAccountKeys.delete -
iam.serviceAccountKeys.list -
iam.serviceAccounts.create -
iam.serviceAccounts.delete -
iam.serviceAccounts.get -
iam.roles.create -
iam.roles.get -
iam.roles.list -
iam.roles.undelete -
iam.roles.update -
resourcemanager.projects.getIamPolicy -
resourcemanager.projects.setIamPolicy
22.2.1.2. 管理者の認証情報のルートシークレット形式 リンクのコピーリンクがクリップボードにコピーされました!
Cloud Credential Operator (CCO) は、mint モード で新しい認証情報を生成するか、passthrough モード で認証情報のルートシークレットをコピーして、認証情報のルートシークレットを作成します。
各クラウドプロバイダーは、kube-system namespace の認証情報ルートシークレットを使用します。これは、すべての認証情報要求を満たし、それぞれのシークレットを作成するために使用されます。
シークレットの形式はクラウドごとに異なり、それぞれの CredentialsRequest シークレットにも使用されます。
Amazon Web Services (AWS) シークレット形式
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: aws-creds
stringData:
aws_access_key_id: <base64-encoded_access_key_id>
aws_secret_access_key: <base64-encoded_secret_access_key>
Google Cloud シークレット形式
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: gcp-credentials
stringData:
service_account.json: <base64-encoded_service_account>