アクセス制御とユーザー管理
ユーザー認証とユーザーおよび namespace のアクセス制御の設定
概要
第1章 Argo CD RBAC の設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Red Hat SSO (RH SSO) を使用して Argo CD にログインするユーザーは、読み取り専用ユーザーになります。ユーザーレベルのアクセスを変更および管理できます。
1.1. ユーザーレベルのアクセス設定 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーレベルのアクセスを管理および変更するには、Argo CD カスタムリソース (CR) のロールベースのアクセス制御 (RBAC) セクションを設定します。
手順
argocdCR を編集します。oc edit argocd [argocd-instance-name] -n [namespace]
$ oc edit argocd [argocd-instance-name] -n [namespace]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力
Copy to Clipboard Copied! Toggle word wrap Toggle overflow policy設定をrbacセクションに追加し、name、email、およびユーザーのroleを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
現在、RHSSO は Red Hat OpenShift GitOps ユーザーのグループ情報を読み取ることができません。そのため、ユーザーレベルで RBAC を設定します。
1.2. RHSSO リソース要求/制限の変更 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、RHSSO コンテナーがリソース要求および制限と共に作成されます。リソース要求を変更および管理できます。
| リソース | 要求 | 制限 |
|---|---|---|
| CPU | 500 | 1000 m |
| メモリー | 512 Mi | 1024 Mi |
手順
- Argo CD カスタムリソース (CR) にパッチを適用する際のデフォルトのリソース要件を変更します。
oc -n openshift-gitops patch argocd openshift-gitops --type='json' -p='[{"op": "add", "path": "/spec/sso", "value": {"provider": "keycloak", "resources": {"requests": {"cpu": "512m", "memory": "512Mi"}, "limits": {"cpu": "1024m", "memory": "1024Mi"}} }}]'
$ oc -n openshift-gitops patch argocd openshift-gitops --type='json' -p='[{"op": "add", "path": "/spec/sso", "value": {"provider": "keycloak", "resources": {"requests": {"cpu": "512m", "memory": "512Mi"}, "limits": {"cpu": "1024m", "memory": "1024Mi"}} }}]'
Red Hat OpenShift GitOps によって作成された RHSSO は、Operator によって行われる変更のみを永続化します。RHSSO が再起動すると、RHSSO で Admin が作成した追加の設定が削除されます。
第2章 Dex を使用した Argo CD の SSO の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps Operator がインストールされると、Argo CD は admin パーミッションを持つユーザーを自動的に作成します。複数のユーザーを管理するために、クラスター管理者は Argo CD を使用して、シングルサインオン (SSO) を設定できます。
ArgoCD CR の spec.dex パラメーターは、Red Hat OpenShift GitOps v1.10.0 以降ではサポート対象外になりました。代わりに .spec.sso パラメーターの使用を検討してください。
2.1. Dex OpenShift OAuth コネクターを有効にするための設定 リンクのコピーリンクがクリップボードにコピーされました!
Dex は、Operator によって作成されるすべての Argo CD インスタンスにデフォルトでインストールされます。.spec.sso パラメーターを設定することで、Dex を SSO 認証プロバイダーとして使用するように Red Hat OpenShift GitOps を設定できます。
Dex は、プラットフォームが提供する OAuth サーバーを確認して、OpenShift Container Platform 内で定義されたユーザーおよびグループを使用します。
手順
Dex を有効にするには、Operator の YAML リソースで
.spec.sso.providerパラメーターをdexに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openShiftOAuthプロパティーは、値がtrueに設定されている場合に、組み込み OpenShift Container PlatformOAuthサーバーを自動的に設定するように Operator を トリガーします。
2.1.1. 特定のロールへのユーザーのマッピング リンクのコピーリンクがクリップボードにコピーされました!
Argo CD は、直接の ClusterRoleBinding ロールがある場合は、ユーザーを特定のロールにマップできません。OpenShift 経由で SSO の role:admin としてロールを手動で変更できます。
手順
cluster-adminsという名前のグループを作成します。oc adm groups new cluster-admins
$ oc adm groups new cluster-adminsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーをグループに追加します。
oc adm groups add-users cluster-admins USER
$ oc adm groups add-users cluster-admins USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-adminClusterRoleをグループに適用します。oc adm policy add-cluster-role-to-group cluster-admin cluster-admins
$ oc adm policy add-cluster-role-to-group cluster-admin cluster-adminsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. .spec.sso を置き換えて Dex を無効にする リンクのコピーリンクがクリップボードにコピーされました!
-
dex を無効にするには、Argo CD カスタムリソースから
spec.sso要素を削除するか、別の SSO プロバイダーを指定します。
第3章 Keycloak を使用した Argo CD の SSO の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps Operator がインストールされると、Argo CD は admin パーミッションを持つユーザーを自動的に作成します。複数のユーザーを管理するために、クラスター管理者は Argo CD を使用して、シングルサインオン (SSO) を設定できます。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat SSO がクラスターにインストールされている。
- Red Hat OpenShift GitOps Operator がクラスターにインストールされます。
- Argo CD がクラスターにインストールされている。
3.2. Keycloak での新規クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Dex は、Operator によって作成されるすべての Argo CD インスタンスにデフォルトでインストールされます。ただし、Dex 設定を削除し、代わりに Keycloak を追加して OpenShift 認証情報を使用して Argo CD にログインすることができます。Keycloak は Argo CD と OpenShift 間のアイデンティティーブローカーとして機能します。
手順
Keycloak を設定するには、以下の手順に従います。
Argo CD カスタムリソース (CR) から
.spec.sso.dexパラメーターを削除して Dex 設定を削除し、CR を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Argo CD CR で
providerパラメーターの値をkeycloakに設定します。 次のいずれかの手順を実行して、Keycloak を設定します。
安全な接続のために、次の例に示すように
rootCAパラメーターの値を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Keycloak の TLS 証明書を検証するために使用されるカスタム証明書。
Operator は
.spec.keycloak.rootCAパラメーターの変更を調整し、argocd-cm設定マップの PEM エンコードされたルート証明書でoidc.configパラメーターを更新します。安全でない接続の場合、
rootCAパラメーターの値を空のままにして、以下に示すようにoidc.tls.insecure.skip.verifyパラメーターを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Keycloak インスタンスのインストールおよび実行には、2 - 3 分かかります。
3.3. Keycloak へのログイン リンクのコピーリンクがクリップボードにコピーされました!
Keycloak コンソールにログインしてアイデンティティーまたはロールを管理し、さまざまなロールに割り当てられたパーミッションを定義します。
前提条件
- Dex のデフォルト設定は削除されている。
- Argo CD CR は Keycloak SSO プロバイダーを使用するように設定されている。
手順
ログイン用の Keycloak ルート URL を取得します。
oc -n argocd get route keycloak NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD keycloak keycloak-default.apps.ci-ln-******.origin-ci-int-aws.dev.**.com keycloak <all> reencrypt None
$ oc -n argocd get route keycloak NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD keycloak keycloak-default.apps.ci-ln-******.origin-ci-int-aws.dev.**.com keycloak <all> reencrypt NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 環境変数としてユーザー名とパスワードを保存する Keycloak Pod 名を取得します。
oc -n argocd get pods NAME READY STATUS RESTARTS AGE keycloak-1-2sjcl 1/1 Running 0 45m
$ oc -n argocd get pods NAME READY STATUS RESTARTS AGE keycloak-1-2sjcl 1/1 Running 0 45mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Keycloak ユーザー名を取得します。
oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME SSO_ADMIN_USERNAME=Cqid54Ih
$ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME SSO_ADMIN_USERNAME=Cqid54IhCopy to Clipboard Copied! Toggle word wrap Toggle overflow Keycloak パスワードを取得します。
oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD SSO_ADMIN_PASSWORD=GVXxHifH
$ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD SSO_ADMIN_PASSWORD=GVXxHifHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ログインページで、LOG IN VIA KEYCLOAK をクリックします。
注記Keycloak インスタンスの準備ができた後にのみ、LOGIN VIA KEYCLOAK オプションが表示されます。
Login with OpenShift をクリックします。
注記kubeadminを使用したログインはサポートされていません。- ログインするために OpenShift の認証情報を入力します。
オプション: デフォルトでは、Argo CD にログインしているすべてのユーザーが、読み取り専用アクセス権を持っています。
argocd-rbac-cm設定マップを更新して、ユーザーレベルのアクセスを管理できます。policy.csv: <name>, <email>, role:admin
policy.csv: <name>, <email>, role:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Keycloak のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Argo CD カスタムリソース (CR) ファイルから SSO フィールドを削除して、Keycloak リソースおよびそれらの関連設定を削除することができます。SSO フィールドを削除すると、ファイルの値は以下のようになります。
この方法を使用して作成した Keycloak アプリケーションは、現在永続的ではありません。Argo CD Keycloak レルムで作成された追加の設定は、サーバーの再起動時に削除されます。