2.2. AWS の IAM の手動作成
2.2.1. IAM の手動作成
Cloud Credential Operator は、クラウドアイデンティティーおよびアクセス管理 (IAM) API に到達できない環境にインストールする前に手動モードに配置できます。管理者はクラスター kube-system
namespace に管理者レベルの認証情報シークレットを保存しないようにします。
手順
OpenShift Container Platform インストーラーを実行し、マニフェストを生成します。
$ openshift-install create manifests --dir=mycluster
Cloud Credential Operator が手動モードになるように、設定マップを manifests ディレクトリーに挿入します。
$ cat <<EOF > mycluster/manifests/cco-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: cloud-credential-operator-config namespace: openshift-cloud-credential-operator annotations: release.openshift.io/create-only: "true" data: disabled: "true" EOF
ローカルクラウドの認証情報を使用して作成された
admin
認証情報シークレットを削除します。この削除により、admin
認証情報がクラスターに保存されなくなります。$ rm mycluster/openshift/99_cloud-creds-secret.yaml
OpenShift Container Platform リリースイメージを取得します。
openshift-install
バイナリーはこれを使用するためにビルドされます。$ bin/openshift-install version
出力例
release image quay.io/openshift-release-dev/ocp-release:4.z.z-x86_64
このリリースイメージ内で、デプロイするクラウドをターゲットとする
CredentialsRequest
オブジェクトをすべて特定します。$ oc adm release extract quay.io/openshift-release-dev/ocp-release:4.z.z-x86_64 --to ./release-image
展開したファイルで
CredentialsRequests
を見つけます。$ grep -l "apiVersion: cloudcredential.openshift.io" * | xargs cat
注記今後の OpenShift Container Platform リリースでは、
CredentialsRequests
をスキャンし、それらを表示する新規のoc adm release
コマンドが表示されます。これにより、それぞれの要求の詳細が表示されます。
spec.providerSpec.kind
がインストールするクラウドプロバイダーと一致しないCredentialsRequests
については、これを無視するようにしてください。サンプル
CredentialsRequest
オブジェクトapiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: cloud-credential-operator-iam-ro namespace: openshift-cloud-credential-operator spec: secretRef: name: cloud-credential-operator-iam-ro-creds namespace: openshift-cloud-credential-operator providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - effect: Allow action: - iam:GetUser - iam:GetUserPolicy - iam:ListAccessKeys resource: "*"
-
以前に生成した
openshift-install
マニフェストディレクトリーにシークレットの YAML ファイルを作成します。シークレットは、各request.spec.secretRef
に定義される namespace およびシークレット名を使用して保存する必要があります。シークレットデータの形式は、クラウドプロバイダーごとに異なります。 クラスターの作成に進みます。
$ openshift-install create cluster --dir=mycluster
重要アップグレードを実行する前に、パーミッションが次のリリースで変更された場合には、認証情報の調整が必要になる場合があります。今後は、Cloud Credential Operator は更新されたパーミッションが処理されることを示唆するまでアップグレードできなくなる可能性があります。