20.2. mint モードの Cloud Credential Operator について
mint モードで Cloud Credential Operator (CCO) を使用すると、クラスター内のコンポーネントの認証情報を作成して調整できます。
Mint モードは、OpenShift Container Platform をサポートするプラットフォーム上の OpenShift Container Platform のデフォルトの CCO クレデンシャルモードです。mint モードは、Amazon Web Services (AWS) および Google Cloud クラスターをサポートします。
20.2.1. mint モードの認証情報管理について リンクのコピーリンクがクリップボードにコピーされました!
Cloud Credential Operator (CCO) をミントモードで使用する場合は、CCO がプロバイダー認証情報をどのように使用するかを理解する必要があります。
CCO を mint モードで使用するクラスターの場合、管理者レベルの認証情報は kube-system namespace に保存されます。CCO は、admin 認証情報を使用してクラスター内の CredentialsRequest オブジェクトを処理し、制限されたアクセス許可を持つコンポーネントのユーザーを作成します。
mint モードでは、各クラスターコンポーネントには、必要な特定のアクセス許可のみが与えられます。クラウド認証情報の調整は自動的かつ継続的に行われるため、コンポーネントは追加の認証情報や権限を必要とするアクションを実行できます。
たとえば、マイナーバージョンのクラスター更新 (OpenShift Container Platform 4.20 から 4.21 への更新など) には、クラスターコンポーネントの更新された CredentialsRequest リソースが含まれる場合があります。mint モードで動作する CCO は、admin 認証情報を使用して CredentialsRequest リソースを処理し、更新された認証要件を満たすために制限された権限を持つユーザーを作成します。
デフォルトでは、mint モードでは、admin 認証情報をクラスターの kube-system namespace に保存する必要があります。このアプローチが組織のセキュリティー要件を満たさない場合は、クラスターのインストール後に認証情報を削除 できます。詳細は、クラウドプロバイダーの認証情報の削除 について参照してください。
20.2.1.1. mint モードのパーミッション要件について リンクのコピーリンクがクリップボードにコピーされました!
mint モードで Cloud Credential Operator (CCO) を使用する場合、指定する認証情報が OpenShift Container Platform を実行またはインストールしているクラウドの各種要件を満たしていることを確認してください。指定される認証情報が mint モードで不十分な場合、CCO は IAM ユーザーを作成できません。
20.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
20.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
20.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>