Microservices Engine (MSE) Nacos レジストリでは、インスタンス、名前空間、グループ、サービス名などのリソースに基づいて、きめ細かなアクセス権限を設定できます。これにより、インスタンスへの不正なアクセスや不正な変更のリスクが軽減されます。このトピックでは、MSE の Nacos レジストリにきめ細かな認証を設定する方法について説明します。
前提条件
使用方法
このトピックでは、次の図に示すように、エンジンへの直接接続に対するアクセス権限を有効にして設定する方法について説明します。権限が付与されると、Nacos クライアントは RAM ユーザーとして MSE Nacos にアクセスできます。

RAM ユーザーに MSE コンソールの使用権限を付与するエンジン制御の認証設定については、「レジストリと設定センターの認可」をご参照ください。
ステップ1:きめ細かなポリシーの作成
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
Policies ページで、ポリシーの作成 をクリックします。

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

ポリシーの内容を入力します。
次の表に、レジストリでのきめ細かな認証のアクションを示します。
アクション
説明
mse:QueryNacosNaming
MSE Nacos レジストリ内のサービスを読み取る権限です。これにより、SDK を使用してサービスを取得し、サブスクライブできます。
mse:UpdateNacosNaming
MSE Nacos レジストリ内のサービスを更新する権限です。これにより、SDK を使用してサービスを公開し、変更できます。
レジストリのきめ細かな認証のリソースは、次の形式に従う必要があります:
acs:mse:*:*:instance/{instance_id}/{namespaceId}/{group}/naming/{serviceName}「例」セクションを参考に、ポリシーの内容を編集することもできます。
RAM ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。
ページ上部の 最適化 をクリックし、次に 行う をクリックしてポリシーを最適化します。
高度なポリシー最適化機能は、以下のタスクを実行します。
互換性のない操作に対してリソースまたは条件を分割する。
リソースの範囲を狭める。
重複する文を削除するか、文をマージする。
ポリシーの作成 ページで、OK をクリックします。
ポリシーの作成 ダイアログボックスで、policy name と description を入力し、OK をクリックします。
ステップ2:RAM 権限の付与
RAM ユーザーへの権限の付与
Alibaba Cloud アカウントまたは RAM の管理権限 (
AliyunRAMFullAccess) を持つ RAM ユーザーとしてRAM コンソールにログインします。左側メニューで、 を選択します。
[Users] ページで、対象の RAM ユーザーを見つけ、[Actions] 列の [Add Permissions] をクリックします。
複数の RAM ユーザーを選択し、リストの下部にある [Add Permissions] をクリックして、権限を一括で付与することもできます。
権限の付与 パネルの Policies セクションで、[All Policy Types] ドロップダウンリストから カスタムポリシー を選択します。テキストボックスにステップ1 で作成したポリシーの名前を入力し、検索結果に表示されたポリシー名をクリックしてから、[OK] をクリックします。
権限の付与 パネルで、認可情報を確認し、Close をクリックします。
RAM ロールへの権限の付与
例
特定のインスタンスのサービスに対する読み取り専用権限をユーザーに付与します。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }特定のインスタンスのサービスに対する読み取りおよび更新権限をユーザーに付与します。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }説明${instanceId1}と${instanceId2}は、レジストリ インスタンスの ID を表します。インスタンスの特定の名前空間内のサービスに対する読み取り専用権限をユーザーに付与します。
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" } ], "Version": "1" }インスタンスの特定の名前空間の
${group}グループ内のサービスに対する読み取りおよび更新権限をユーザーに付与します。{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" } ], "Version": "1" }${group}グループ内の${serviceName}サービスに対する読み取り専用権限をユーザーに付与します。{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }${group}グループ内の${serviceName}サービスに対する読み取りおよび更新権限をユーザーに付与します。{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }
関連ドキュメント
レジストリのインスタンスレベルの認証については、「Nacos クライアント認証」をご参照ください。