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