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

Alibaba Cloud Service Mesh:RAM ユーザーと RAM ロールへの権限の付与

最終更新日:May 31, 2025

必要な権限を RAM ユーザーまたは RAM ロールに付与することにより、必要に応じて Service Mesh (ASM) を使用するための権限を Resource Access Management (RAM) ユーザーまたは RAM ロールに付与できます。 承認された RAM ユーザーと RAM ロールのみが、ASM コンソールで ASM インスタンスの作成や ASM 構成の更新などの操作を実行できます。 これにより、Alibaba Cloud アカウントの AccessKey ペアの漏洩によるセキュリティリスクが排除されます。 このトピックでは、RAM ユーザーと RAM ロールに権限を付与する方法について説明します。

前提条件

背景情報

RAMユーザーとRAMロールに必要な権限は、シナリオによって異なります。

RAMユーザーとRAMロールへのシステムポリシーのアタッチ

デフォルトでは、ASMは2つのシステムポリシー(AliyunASMReadOnlyAccessとAliyunASMFullAccess)を作成します。これらのポリシーをRAMユーザーとRAMロールにアタッチできます。以下の部分では、2つのシステムポリシーについて説明します。

  • AliyunASMReadOnlyAccess

    このポリシーには、ASMインスタンスに対する読み取り専用権限のみが含まれています。このポリシーをRAMユーザーにアタッチすると、RAMユーザーはASMインスタンスに関する情報を表示することのみが可能になり、ASMインスタンスの設定を変更することはできません。

  • AliyunASMFullAccess

    このポリシーには、ASMインスタンスに対するすべての権限が含まれています。このポリシーをRAMユーザーにアタッチすると、RAMユーザーはAlibaba Cloudアカウントと同じASMインスタンスに対する権限を持ち、ASMインスタンスに対するすべての操作を実行できます。

以下の部分では、RAMユーザーまたはRAMロールにシステムポリシーをアタッチする方法について説明します。次の例では、AliyunASMReadOnlyAccessポリシーがRAMユーザーにアタッチされています。詳細については、「RAMユーザーへの権限の付与」および「RAMロールへの権限の付与」をご参照ください。

  1. RAM 管理者として RAM コンソール にログオンします。

  2. 左側のナビゲーションペインで、[ID] > [ユーザー] を選択します。

  3. [ユーザー] ページで、必要な RAM ユーザーを見つけ、 列の [権限の追加]アクション をクリックします。

    image

    複数の RAM ユーザーを選択し、ページの下部にある [権限の追加] をクリックして、一度に複数の RAM ユーザーに権限を付与することもできます。

  4. [権限の付与] パネルで、RAMユーザーに権限を付与します。

    1. [リソーススコープ] パラメーターを構成します。

    2. プリンシパルパラメーターを構成します。

      プリンシパルとは、権限を付与する RAM ユーザーのことです。 現在の RAM ユーザーが自動的に選択されます。

    3. システム ポリシー[すべてのタイプ] ドロップダウンリストから AliyunASMReadOnlyAccessAliyunASMReadOnlyAccess を選択し、検索ボックスに と入力し、 を選択します。

      説明

      一度に最大 5 つのポリシーをRAMユーザーにアタッチできます。5 つ以上のポリシーをRAMユーザーにアタッチする場合は、操作を繰り返します。

    4. [権限の付与] をクリックします。

  5. [閉じる] をクリックします。

RAMユーザーとRAMロールへのカスタムポリシーのアタッチ

権限に対してきめ細かい制御を実施する場合は、カスタムポリシーを作成し、RAMユーザーとRAMロールにアタッチできます。

ASMインスタンスに対する権限を付与するために使用されるポリシーの作成

  1. 管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。

  2. 左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] をクリックします。

    image

  4. [ポリシーの作成] ページで、[JSON] タブをクリックします。

    image

  5. カスタムポリシーを入力し、[OK] をクリックします。

    Action フィールドを Statement ブロックで変更して、API 操作の詳細な認証を有効にできます。 この例では、制限付き権限を持つポリシーが作成されます。 このポリシーは、ロールベースアクセス制御 (RBAC) 承認権限を除く、ASM に対するすべての RAM 権限を付与します。 このポリシーがアタッチされている RAM ユーザーは、他のユーザーに RBAC 権限を付与することはできませんが、他のすべての権限を持ちます。 RAM ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。

    {
        "Statement": [
            {
                // ASMに対するすべてのアクションを許可します。
                "Effect": "Allow",
                "Action": [
                    "servicemesh:Add*",
                    "servicemesh:CRBatchDeletion",
                    "servicemesh:Create*",
                    "servicemesh:Delete*",
                    "servicemesh:Describe*",
                    "servicemesh:Enable*",
                    "servicemesh:Disable*",
                    "servicemesh:Get*",
                    "servicemesh:InvokeApiServer",
                    "servicemesh:List*",
                    "servicemesh:Modify*",
                    "servicemesh:Re*",
                    "servicemesh:Run*",
                    "servicemesh:Set*",
                    "servicemesh:Sync*",
                    "servicemesh:Update*",
                    "servicemesh:Upgrade*"
                ],
                "Resource": "*"
            },
            {
                // ログサービスに対するアクションを許可します。
                "Effect": "Allow",
                "Action": [
                    "log:ListLogStores",
                    "log:ListDashboard",
                    "log:GetDashboard",
                    "log:ListSavedSearch",  
                    "log:ListProject"
                ],
                "Resource": "*"
            },
            {
                // auditログへのアクセスを許可します。
                "Effect": "Allow",
                "Action": "log:GetLogStoreLogs",
                "Resource": "acs:log:*:*:project/*/logstore/audit-*"
            },
            {
                // istioログへのアクセスを許可します。
                "Effect": "Allow",
                "Action": "log:GetLogStoreLogs",
                "Resource": "acs:log:*:*:project/*/logstore/istio-*"
            },
            {
                // servicemeshサービスにリンクされたロールの作成を許可します。
                "Action": "ram:CreateServiceLinkedRole",
                "Resource": "*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "ram:ServiceName": "servicemesh.aliyuncs.com"
                    }
                }
            }
        ],
        "Version": "1"
    }
  6. [基本情報] セクションで、[名前] フィールドにポリシー名を入力します。この例では、ポリシー名は ASMPolicy1 です。次に、[OK] をクリックします。

RAMユーザーまたはRAMロールへのカスタムポリシーのアタッチ

この例では、カスタムポリシーがRAMユーザーにアタッチされています。RAMロールにカスタムポリシーをアタッチする方法の詳細については、「RAMロールへの権限の付与」をご参照ください。

  1. 管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。

  2. 左側のナビゲーションペインで、[ID] > [ユーザー] を選択します。

  3. [ユーザー] ページで、必要な RAM ユーザーを見つけ、 列の [権限の追加]アクション をクリックします。

    image

    複数の RAM ユーザーを選択し、ページの下部にある [権限の追加] をクリックして、一度に複数の RAM ユーザーに権限を付与することもできます。

  4. [権限の追加] パネルで、RAM ユーザーに権限を付与します。

    1. [リソーススコープ] パラメーターを構成します。

    2. プリンシパルパラメーターを構成します。

      プリンシパルとは、権限を付与する RAM ユーザーのことです。 現在の RAM ユーザーが自動的に選択されます。

    3. [ポリシー] パラメーターを構成します。

      [すべてのタイプ] ドロップダウンから [カスタムポリシー] を選択します。 [ASMPolicy1] をテキストボックスに入力し、検索結果から選択します。

  1. [権限の付与] をクリックします。

  2. [閉じる] をクリックします。

カスタムポリシーのサンプル シナリオ

シナリオ 1:単一のASMインスタンスに対する権限の付与

次のスクリプトを使用して、単一のASMインスタンスに対する権限を付与するポリシーを作成できます。ポリシーをRAMユーザーまたはRAMロールにアタッチすると、RAMユーザーまたはRAMロールは、指定されたIDを持つASMインスタンスのみを管理できます。

説明

ポリシーを作成する際は、スクリプト内の <ServicemeshId> を、権限を付与する ASM インスタンスの ID に置き換えてください。

{
  "Statement": [
    {
      // 指定されたIDのASMインスタンスに対するすべてのアクションを許可します。
      "Effect": "Allow",
      "Action": "servicemesh:*",
      "Resource": "acs:servicemesh:*:*:servicemesh/<ServicemeshId>"
    },
    {
      // すべてのASMインスタンスを一覧表示することを許可します。
      "Effect": "Allow",
      "Action": "servicemesh:DescribeServiceMeshes",
      "Resource": "*"
    },
    {
      // 指定されたASMインスタンスのauditログへのアクセスを許可します。
      "Effect": "Allow",
      "Action": "log:GetLogStoreLogs",
      "Resource": "acs:log:*:*:project/*/logstore/audit-<ServicemeshId>"
    },
    {
      // 指定されたASMインスタンスのistioログへのアクセスを許可します。
      "Effect": "Allow",
      "Action": "log:GetLogStoreLogs",
      "Resource": "acs:log:*:*:project/*/logstore/istio-<ServicemeshId>"
    }
  ],
  "Version": "1"
}

シナリオ 2:ASMコンソールでIstioリソースに対する読み取りおよび書き込み権限を付与する

デフォルトでは、ASMによって提供されるシステム ポリシー AliyunASMReadOnlyAccess は、RAMユーザーまたはRAMロールにASMインスタンスに対する読み取り専用権限を付与します。このポリシーがアタッチされているRAMユーザーまたはRAMロールは、ASMでIstioリソースを管理できません。

次のスクリプトを使用して、Istioリソースに対する読み取りおよび書き込み権限を付与するポリシーを作成できます。ポリシーをRAMユーザーまたはRAMロールにアタッチすると、RAMユーザーまたはRAMロールはASMコンソールを使用してASMインスタンス上のIstioリソースを管理できます。ただし、RAMユーザーまたはRAMロールは、機能設定など、ASMインスタンスの他の設定を変更することはできません。

{
    "Statement": [
        {
            // Istioリソースの読み取りと書き込みを許可します。
            "Effect": "Allow",
            "Action": [
                "servicemesh:List*",
                "servicemesh:Describe*",
                "servicemesh:Get*",
                "servicemesh:InvokeApiServer"
            ],
            "Resource": "*"
        },
        {
            // ログサービスに対するアクションを許可します。
            "Effect": "Allow",
            "Action": [
                "log:ListLogStores",
                "log:ListDashboard",
                "log:GetDashboard",
                "log:ListSavedSearch"
            ],
            "Resource": "*"
        },
        {
            // auditログへのアクセスを許可します。
            "Effect": "Allow",
            "Action": "log:GetLogStoreLogs",
            "Resource": "acs:log:*:*:project/*/logstore/audit-*"
        }
    ],
    "Version": "1"
}

シナリオ 3:RBAC承認権限の付与

次のスクリプトを使用して、RBAC承認権限を付与するポリシーを作成できます。ポリシーをRAMユーザーまたはRAMロールにアタッチすると、RAMユーザーまたはRAMロールはASMコンソールを使用して、他のRAMロールまたはRAMユーザーのRBAC権限を管理できます。ただし、RAMユーザーまたはRAMロールはASMインスタンスを管理できません。

{
    "Statement": [
        {
            // RBAC権限の管理を許可します。
            "Effect": "Allow",
            "Action": [
                "servicemesh:DescribeUserPermissions",
                "servicemesh:GrantUserPermissions",
                "servicemesh:DescribeServiceMeshes",
                "servicemesh:DescribeUsersWithPermissions"
            ],
            "Resource": "*"
        },
        {
            // ユーザー情報の取得を許可します。
            "Effect": "Allow",
            "Action": "ims:ListUserBasicInfos",
            "Resource": "*"
        }
    ],
    "Version": "1"
}