アクセス制御とユーザー管理


Red Hat OpenShift GitOps 1.10

ユーザー認証とユーザーおよび namespace のアクセス制御の設定

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、ユーザーレベルのアクセスとリソース要求を変更および管理する手順を説明します。また、クラスター内の複数のユーザー、権限、Argo CD リソース、およびインスタンスを管理するために、ロールベースのアクセス制御およびシングルサインオン認証プロバイダーを設定する方法についても説明します。

第1章 Argo CD RBAC の設定

デフォルトでは、Red Hat SSO (RH SSO) を使用して Argo CD にログインするユーザーは、読み取り専用ユーザーになります。ユーザーレベルのアクセスを変更および管理できます。

1.1. ユーザーレベルのアクセス設定

ユーザーレベルのアクセスを管理および変更するには、Argo CD カスタムリソース (CR) のロールベースのアクセス制御 (RBAC) セクションを設定します。

手順

  1. argocd CR を編集します。

    $ oc edit argocd [argocd-instance-name] -n [namespace]
    Copy to Clipboard Toggle word wrap

    出力

    metadata
    ...
    ...
      rbac:
        policy: 'g, rbacsystem:cluster-admins, role:admin'
        scopes: '[groups]'
    Copy to Clipboard Toggle word wrap

  2. policy 設定を rbac セクションに追加し、nameemail、およびユーザーの role を追加します。

    metadata
    ...
    ...
    rbac:
        policy: <name>, <email>, role:<admin>
        scopes: '[groups]'
    Copy to Clipboard Toggle word wrap
注記

現在、RHSSO は Red Hat OpenShift GitOps ユーザーのグループ情報を読み取ることができません。そのため、ユーザーレベルで RBAC を設定します。

1.2. RHSSO リソース要求/制限の変更

デフォルトでは、RHSSO コンテナーがリソース要求および制限と共に作成されます。リソース要求を変更および管理できます。

Expand
リソース要求制限

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"}} }}]'
Copy to Clipboard Toggle word wrap
注記

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 に設定します。

    # ...
    spec:
      sso:
        provider: dex
        dex:
          openShiftOAuth: true 
    1
    
    # ...
    Copy to Clipboard Toggle word wrap
    1
    openShiftOAuth プロパティーは、値が true に設定されている場合に、組み込み OpenShift Container Platform OAuth サーバーを自動的に設定するように Operator を トリガーします。

2.1.1. 特定のロールへのユーザーのマッピング

Argo CD は、直接の ClusterRoleBinding ロールがある場合は、ユーザーを特定のロールにマップできません。OpenShift 経由で SSO の role:admin としてロールを手動で変更できます。

手順

  1. cluster-admins という名前のグループを作成します。

    $ oc adm groups new cluster-admins
    Copy to Clipboard Toggle word wrap
  2. ユーザーをグループに追加します。

    $ oc adm groups add-users cluster-admins USER
    Copy to Clipboard Toggle word wrap
  3. cluster-admin ClusterRole をグループに適用します。

    $ oc adm policy add-cluster-role-to-group cluster-admin cluster-admins
    Copy to Clipboard Toggle word wrap

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 を設定するには、以下の手順に従います。

  1. Argo CD カスタムリソース (CR) から .spec.sso.dex パラメーターを削除して Dex 設定を削除し、CR を保存します。

    dex:
        openShiftOAuth: true
        resources:
          limits:
            cpu:
            memory:
          requests:
            cpu:
            memory:
    Copy to Clipboard Toggle word wrap
  2. Argo CD CR で provider パラメーターの値を keycloak に設定します。
  3. 次のいずれかの手順を実行して、Keycloak を設定します。

    • 安全な接続のために、次の例に示すように rootCA パラメーターの値を設定します。

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
        name: example-argocd
        labels:
          example: basic
      spec:
        sso:
          provider: keycloak
          keycloak:
            rootCA: "<PEM-encoded-root-certificate>" 
      1
      
        server:
          route:
            enabled: true
      Copy to Clipboard Toggle word wrap
      1
      Keycloak の TLS 証明書を検証するために使用されるカスタム証明書。

      Operator は .spec.keycloak.rootCA パラメーターの変更を調整し、argocd-cm 設定マップの PEM エンコードされたルート証明書で oidc.config パラメーターを更新します。

    • 安全でない接続の場合、rootCA パラメーターの値を空のままにして、以下に示すように oidc.tls.insecure.skip.verify パラメーターを使用します。

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
        name: example-argocd
        labels:
          example: basic
      spec:
        extraConfig:
          oidc.tls.insecure.skip.verify: "true"
        sso:
          provider: keycloak
          keycloak:
            rootCA: ""
      Copy to Clipboard Toggle word wrap
注記

Keycloak インスタンスのインストールおよび実行には、2 - 3 分かかります。

3.3. Keycloak へのログイン

Keycloak コンソールにログインしてアイデンティティーまたはロールを管理し、さまざまなロールに割り当てられたパーミッションを定義します。

前提条件

  • Dex のデフォルト設定は削除されている。
  • Argo CD CR は Keycloak SSO プロバイダーを使用するように設定されている。

手順

  1. ログイン用の 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
    Copy to Clipboard Toggle word wrap
  2. 環境変数としてユーザー名とパスワードを保存する Keycloak Pod 名を取得します。

    $ oc -n argocd get pods
    
    NAME                      READY   STATUS           RESTARTS   AGE
    keycloak-1-2sjcl           1/1    Running            0        45m
    Copy to Clipboard Toggle word wrap
    1. Keycloak ユーザー名を取得します。

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME
      
      SSO_ADMIN_USERNAME=Cqid54Ih
      Copy to Clipboard Toggle word wrap
    2. Keycloak パスワードを取得します。

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD
      
      SSO_ADMIN_PASSWORD=GVXxHifH
      Copy to Clipboard Toggle word wrap
  3. ログインページで、LOG IN VIA KEYCLOAK をクリックします。

    注記

    Keycloak インスタンスの準備ができた後にのみ、LOGIN VIA KEYCLOAK オプションが表示されます。

  4. Login with OpenShift をクリックします。

    注記

    kubeadmin を使用したログインはサポートされていません。

  5. ログインするために OpenShift の認証情報を入力します。
  6. オプション: デフォルトでは、Argo CD にログインしているすべてのユーザーが、読み取り専用アクセス権を持っています。argocd-rbac-cm 設定マップを更新して、ユーザーレベルのアクセスを管理できます。

    policy.csv:
    <name>, <email>, role:admin
    Copy to Clipboard Toggle word wrap

3.4. Keycloak のアンインストール

Argo CD カスタムリソース (CR) ファイルから SSO フィールドを削除して、Keycloak リソースおよびそれらの関連設定を削除することができます。SSO フィールドを削除すると、ファイルの値は以下のようになります。

  apiVersion: argoproj.io/v1beta1
  kind: ArgoCD
  metadata:
    name: example-argocd
    labels:
      example: basic
  spec:
    server:
      route:
       enabled: true
Copy to Clipboard Toggle word wrap
注記

この方法を使用して作成した Keycloak アプリケーションは、現在永続的ではありません。Argo CD Keycloak レルムで作成された追加の設定は、サーバーの再起動時に削除されます。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat