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

Microservices Engine:レジストリにおけるきめ細かい認証

最終更新日:Jul 23, 2025

Microservices Engine(MSE)の Nacos レジストリでは、インスタンス、名前空間、グループ、またはサービス名に基づいてアクセス許可を構成できます。これにより、悪意のあるユーザーがインスタンスに関する情報を取得または変更することを防ぎます。このトピックでは、MSE の Nacos レジストリに対してきめ細かい認証を構成する方法について説明します。

前提条件

手順

このトピックでは、次の図に示すエンジンの直接接続に対するアクセス許可を付与および構成する方法について説明します。権限が付与されると、Nacos クライアントを使用して RAM ユーザーとして MSE Nacos インスタンスにアクセスできます。

幻灯片1.JPG

説明

エンジン制御のアクセス認証を構成して使用するには、RAM ユーザーに MSE コンソールを使用する権限を付与する必要があります。詳細については、Microservices Registry リソースに対する権限の付与をご参照ください。

手順 1:きめ細かいポリシーの作成

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

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

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

    image

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

    image

  5. ポリシーを構成します。

    • 次の表は、レジストリにおけるきめ細かい認証に関連するアクションについて説明しています。

      アクション

      説明

      mse:QueryNacosNaming

      MSE Nacos レジストリのサービスに対する読み取り権限。これらの権限により、SDK を使用してサービスを取得および監視できます。

      mse:UpdateNacosNaming

      MSE Nacos レジストリのサービスに対する更新権限。この権限により、SDK を使用してサービスをリリースおよび変更できます。

    • レジストリにおけるきめ細かい認証に関連するリソースは、次の形式で指定する必要があります。

      acs:mse:*:*:instance/{instance_id}/{namespaceId}/{group}/naming/{serviceName}

      で提供されている説明に基づいて、ポリシードキュメントを変更することもできます。

    • RAM ポリシーの構文と構造の詳細については、ポリシーの構造と構文をご参照ください。

  6. ページ上部の [高度な最適化(オプション)] をクリックし、[実行] をクリックします。高度な最適化中に、システムは次の操作を実行します。

    高度なポリシー最適化機能を使用すると、次の操作を実行できます。

    • アクションと互換性のないリソースまたは条件を分割する。

    • リソースを絞り込む。

    • ポリシー ステートメントを重複排除またはマージする。

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

  8. [ポリシーの作成] ダイアログボックスで、ポリシーの [名前][説明] を指定し、[OK] をクリックします。

手順 2:RAM ユーザーまたは RAM ロールに権限を付与する

RAM ユーザーに権限を付与する

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

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

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

    image

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

  4. [権限の付与] パネルの [ポリシー] セクションにあるドロップダウンリストから、[カスタムポリシー] を選択します。フィールドに 手順 1 で作成したポリシーの名前を入力し、表示されたポリシーの名前をクリックして、[権限の付与] をクリックします。

  5. [権限の付与] パネルで、承認が成功したことを確認し、[閉じる] をクリックします。

RAM ロールに権限を付与する

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

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

  3. [ロール] ページで、管理する RAM ロールを見つけ、権限の付与[アクション] 列の をクリックします。

    image

    複数の RAM ロールを選択し、RAM ロールリストの下部にある [権限の付与] をクリックして、一度に複数の RAM ロールに権限を付与することもできます。

  4. [権限の付与] パネルの [ポリシー] セクションにあるドロップダウンリストから [カスタムポリシー] を選択します。フィールドに 手順 1 で作成したポリシーの名前を入力し、表示されたポリシーの名前をクリックして、[権限の付与] をクリックします。

  5. [権限の付与] パネルで、承認が成功したことを確認し、[閉じる] をクリックします。

  • 特定のインスタンスのサービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming" // Nacos ネーミングのクエリ
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}", // インスタンスID1
                    "acs:mse:*:*:instance/${instanceId2}" // インスタンスID2
                ],
                "Effect": "Allow"
            }
        ]
    }
  • 特定のインスタンスのサービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming", // Nacos ネーミングのクエリ
                    "mse:UpdateNacosNaming" // Nacos ネーミングの更新
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}", // インスタンスID1
                    "acs:mse:*:*:instance/${instanceId2}" // インスタンスID2
                ],
                "Effect": "Allow"
            }
        ]
    }
    説明

    ${instanceId1} と ${instanceId2} はインスタンス ID を示します。

  • インスタンスの特定の名前空間にあるサービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming", // Nacos ネーミングのクエリ
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" // インスタンスIDと名前空間ID
            }
        ],
        "Version": "1"
    }
  • インスタンスの特定の名前空間にある ${group} グループのサービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming", // Nacos ネーミングのクエリ
                    "mse:UpdateNacosNaming" // Nacos ネーミングの更新
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" // インスタンスID、名前空間ID、グループ
            }
        ],
        "Version": "1"
    }
  • ${group} グループの ${serviceName} サービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming", // Nacos ネーミングのクエリ
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" // インスタンスID、名前空間ID、グループ、サービス名
            }
        ],
        "Version": "1"
    }
  • ${group} グループの ${serviceName} サービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming", // Nacos ネーミングのクエリ
                    "mse:UpdateNacosNaming" // Nacos ネーミングの更新
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" // インスタンスID、名前空間ID、グループ、サービス名
            }
        ],
        "Version": "1"
    }

関連情報

MSE インスタンスの認証を有効にする方法の詳細については、Nacos クライアントによるアクセス認証をご参照ください。