すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACK One GitOps でのユーザーの作成と認可

最終更新日:Mar 27, 2026

ACK One GitOps は、マルチユーザーでの共同作業をサポートしています。管理者は、ユーザーを作成し、Argo CD のロールベースのアクセス制御 (RBAC) 権限を割り当て、Argo CD プロジェクトを通じてアプリケーションレベルのアクセスを管理できます。

ユーザータイプ

ACK One GitOps は、次の 2 種類のユーザータイプをサポートしています。

ユーザータイプ 説明 最適なケース
ローカルユーザー Argo CD で直接作成されます。UI ログインと、自動化のための API キー生成をサポートします。 SSO、ログイン履歴、またはグループベースのアクセスを必要としない小規模なチームや、自動化された CI/CD パイプライン。
RAM ユーザーまたは RAM ロール Alibaba Cloud ID です。ACK One GitOps はデフォルトでシングルサインオン (SSO) をサポートしているため、RAM ユーザーは別のユーザー名とパスワードを入力することなく、Argo CD UI または Argo CD CLI にログインできます。 すでに ID 管理に RAM を使用しているチーム、またはグループベースのアクセス、ログイン履歴、詳細な権限コントロールが必要な場合。

ローカルユーザーの作成

前提条件

開始する前に、以下が準備されていることを確認してください。

ローカルユーザーの追加

  1. argocd-cm ConfigMap を編集します。

    kubectl edit cm argocd-cm -n argocd
  2. data フィールドにローカルユーザーを追加します。次の例では、localuser1 という名前のユーザーを追加します。

    data:
      accounts.localuser1: login,apiKey    # UI ログインと API キーの生成を許可
      accounts.localuser1.enabled: "true"  # ユーザーを有効化

    各アカウントは、次の 2 つの機能をサポートしています。

    • login — ユーザーが Argo CD UI および Argo CD CLI にログインすることを許可します。

    • apiKey — ユーザーが API アクセス用の認証トークンを生成することを許可します。

  3. ユーザーが作成されたことを確認します。

    argocd account list

    想定される出力:

    NAME        ENABLED  CAPABILITIES
    admin       true     login
    localuser1  true     login,apiKey
  4. ユーザーのパスワードを設定し、トークンを生成します。

    # パスワードの設定
    argocd account update-password \
      --account localuser1 \
      --current-password <admin-password> \
      --new-password <localuser1-password>
    
    # API キートークンの生成
    argocd account generate-token --account localuser1
    eyJhb......

Argo CD RBAC 権限の設定

Argo CD RBAC を使用すると、特定のリソースにアクセスできるユーザーとグループを制御できます。この設定は argocd-rbac-cm ConfigMap に保存され、ポリシーベースの構文に従います。

事前定義されたロール

Argo CD には、次の 2 つの組み込みロールが含まれています。

ロール 権限
role:readonly すべての Argo CD リソースへの読み取り専用 (get) アクセス
role:admin すべての Argo CD リソースへのフルアクセス

詳細な権限を持つカスタムロールもサポートされています。

ポリシー構文

すべてのポリシーは、argocd-rbac-cm.data.policy.csv フィールドで定義されます。

権限の割り当て (`p` ルール):

p, <role/user/group>, <resource>, <action>, <object>

プロジェクト内のリソースの場合:

p, <role/user/group>, <resource>, <action>, <appproject>/<object>

以下に示すとおり:

  • <role/user/group> — 権限を受け取るエンティティ (ロール名、ローカルユーザー名、または SSO グループ/UID)

  • <resource> — Argo CD のリソースタイプ

  • <action> — 許可する操作

  • <object> — 特定のリソースインスタンス、またはすべてを対象とする場合は *

ユーザーまたはグループのロールへのマッピング (`g` ルール):

g, <user/group>, <role>

サポートされているリソースとアクション

Argo CD は、clustersprojectsapplicationsapplicationsetsrepositoriescertificatesaccountsgpgkeyslogsexecextensions のリソースをサポートしています。

サポートされているアクションは、getcreateupdatedeletesyncoverrideaction/<api-group>/<Kind>/<action-name> です。

syncoverride、および action/<api-group>/<Kind>/<action-name> は、applications リソースに対してのみ有効です。

ローカルユーザーへの権限付与

  1. argocd-rbac-cm ConfigMap を編集します。

    kubectl edit cm argocd-rbac-cm -n argocd
  2. g ルールを追加して、ローカルユーザーをロールにマッピングします。次の例では、localuser1 を組み込みの role:admin にマッピングします。

    • すべての Argo CD リソースへのフルアクセス権を付与するために、localuser1role:admin にマッピングします。

    • 特定のプロジェクトとアプリケーションに限定されたアクセス権を付与するために、localuser1 をカスタムロール project-admin (コメントアウト) にマッピングします。

    重要

    ConfigMap 内の他の既存の設定は変更しないでください。

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # 現在の設定を保持
          g, localuser1, role:admin         # localuser1 を role:admin にマッピング
    ##    g, localuser1, role:project-admin # 代替案:カスタムロールにマッピング
        scopes: '[uid]'                     # 現在の設定を保持

    この例は、2 つのシナリオをサポートしています。

RAM ユーザーまたは RAM ロールへの権限付与

デフォルトでは、フリートインスタンスの管理者である RAM ユーザーは、SSO を通じて Argo CD の管理者権限を自動的に受け取ります。通常の RAM ユーザーには、明示的な権限付与が必要です。

通常の RAM ユーザーには、次の両方を付与します。

  1. argocd-rbac-cm での Argo CD RBAC 権限

  2. Argo CD プロジェクトを通じたアプリケーションレベルの権限

Argo CD RBAC 権限の付与

  1. argocd-rbac-cm ConfigMap を編集します。

    kubectl edit cm argocd-rbac-cm -n argocd
  2. g ルールを追加して、RAM ユーザーの UID をロールにマッピングします。次の例では、RAM ユーザー 27***02role:admin 権限を付与します。

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # 現在の設定を保持
          g, "27***02", role:admin          # RAM ユーザー 27***02 に role:admin を付与
    ##    g, "27***02", role:project-admin  # 代替案:カスタムロールにマッピング
        scopes: '[uid]'                     # 現在の設定を保持

Argo CD アプリケーション権限の付与

各 Argo CD アプリケーションはプロジェクトに属します。Argo CD プロジェクトを使用して、異なる RAM ユーザーまたは RAM ロールに異なるアプリケーション権限を割り当てます。

Argo CD プロジェクトは、次のアクセス制御をサポートしています。

  • Git リポジトリの制限 — アプリケーションのデプロイに使用できる Git リポジトリを制御します。

  • クラスターと名前空間の制限 — アプリケーションをデプロイできるクラスターと名前空間を定義します。

  • オブジェクトタイプの制限 — デプロイできる Kubernetes リソースタイプ (例:RBAC、カスタムリソース定義 (CRD)、DaemonSet、NetworkPolicy) を制限します。

  • アプリケーションレベルの RBAC — プロジェクトロールを OpenID Connect (OIDC) グループと JSON Web トークン (JWT) にバインドすることにより、特定の RAM ユーザーまたは RAM ロールにアプリケーションごとの権限を付与します。

RAM ユーザーにアプリケーション権限を付与するには、次の手順を実行します。

  1. ご利用の Alibaba Cloud アカウントまたは管理者アカウントを使用して RAM コンソールにログインします。左側のナビゲーションウィンドウで、[ユーザー] または [ロール] をクリックします。対象のユーザーまたはロールの詳細ページで、UID またはロール ID をコピーします。

  2. ACK One コンソールにログインします。左側のナビゲーションウィンドウで、[フリート] > [マルチクラスター GitOps] を選択し、[GitOps コンソール] をクリックして Argo CD UI を開きます。

  3. Argo CD コンソールの左側のナビゲーションウィンドウで、[設定] > [プロジェクト] に移動します。[+ 新規プロジェクト] をクリックしてプロジェクトを作成するか、既存のプロジェクトを開きます。

  4. [+ ロールの追加] をクリックし、次のフィールドを入力して、[作成] をクリックします。

    • [全般] — 基本的なロール情報を設定します。

    • [ポリシールール] — アプリケーションの権限を設定します。

    • グループ — ステップ 1 でコピーした[UID]または[ロール ID]を入力し、[グループを追加]をクリックします。

次の例では、roletest という名前のロールが、RAM ユーザー 27***02test プロジェクト内のすべてのアプリケーションへの読み取り専用 (get) アクセス権を付与します。 ロールが作成されると、RAM ユーザーは ACK One コンソールで [LOG IN VIA ALIYUN SSO] をクリックして Argo CD UI にログインし、権限が有効であることを確認できます。

image