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

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

最終更新日:Jun 18, 2026

ローカルユーザーまたは RAM ユーザーを作成し、Argo CD RBAC を設定して、アプリケーションレベルのアクセス制御を実現します。

ユーザータイプ

ACK One GitOps は、マルチユーザーでのチームコラボレーションをサポートしています。管理者は、ユーザーを作成または削除し、ユーザーごとに Argo CD RBAC 権限と Argo CD アプリケーション権限を設定できます。次の 2 種類のユーザータイプをサポートしています。

ユーザータイプ 説明 最適なケース
ローカルユーザー Argo CD で作成されます。UI ログインと API キーの生成をサポートしています。 シングルサインオン (SSO)、ログイン履歴、またはグループベースのアクセスを必要としない小規模なチームや自動化された CI/CD パイプライン。
RAM ユーザーまたは RAM ロール Alibaba Cloud のアイデンティティです。RAM ユーザーはシングルサインオン (SSO) を通じてログインするため、個別の認証情報は不要です。 アイデンティティ管理に 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 と 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 で定義されます。

定義済みのロール

権限を付与するには、まずロールに権限を割り当て、次にシングルサインオン (SSO) グループまたはローカルユーザーをそのロールにマッピングします。カスタムロールがサポートされており、以下の組み込みロールが利用可能です。

ロール 権限
role:readonly getすべての Argo CD リソースへの読み取り専用 () アクセス
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 は以下のリソースをサポートします: clustersprojectsapplicationsapplicationsetsrepositoriescertificatesaccountsgpgkeyslogsexec、および extensions

以下のアクションがサポートされています: getcreateupdatedeletesyncoverride、および action/<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 ルールを追加して、ローカルユーザーをロールに割り当てます。この例では、localuser1role:admin に割り当てます。

    • localuser1role:admin にマップして、すべての Argo CD リソースへの完全なアクセス権を付与します。

    • プロジェクトスコープのアクセス用に、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 ロールへの権限付与

ACK One GitOps は、デフォルトで Argo CD UI と Argo CD CLI を Alibaba Cloud RAM のシングルサインオン (SSO) 認証と統合します。Alibaba Cloud コンソールにログインした後、認証情報を再入力することなく SSO を通じて Argo CD UI または Argo CD CLI にアクセスできます。フリートインスタンスの管理者は、自動的に 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 をロールにマッピングします。この例では、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 アプリケーション権限の付与

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

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

  • Git リポジトリの制限 — デプロイが許可される Git リポジトリを制限します

  • クラスターと名前空間の制限 — デプロイのターゲットとなるクラスターと名前空間を制限します

  • オブジェクトタイプの制限 — デプロイ可能な Kubernetes リソースタイプ (例:RBAC、CRDs、DaemonSets、NetworkPolicies) を制限します

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

RAM ユーザーにアプリケーション権限を付与するには:

  1. RAM ルートアカウントまたは権限管理者アカウントを使用して RAM コンソールにログインします。[ユーザー] または [ロール] をクリックし、対象のユーザーまたはロールを開き、UID または ロール ID をコピーします。

  2. ACK One コンソールにログインします。[フリート] > [マルチクラスター GitOps] を選択し、[GitOps コンソール] をクリックします。

  3. [設定] > [プロジェクト] に移動します。[+ 新規プロジェクト] をクリックするか、既存のプロジェクトを開きます。

  4. [+ ロールを追加] をクリックして以下を設定し、[作成] をクリックします。

    • [GENERAL] — 基本的なロール設定

    • [POLICY RULES] — アプリケーション権限の設定

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

この例では、test プロジェクト内のすべてのアプリケーションへの読み取り専用 (get) アクセス権を 27***02 に付与するロール roletest を作成します。ロールを作成した後、[ALIYUN SSO を使用してログイン] をクリックしてログインし、権限を検証します。

image