Microservices Engine (MSE) では、RAM ユーザーに MSE の操作権限を付与することで、Alibaba Cloud アカウントの AccessKey を公開することによるセキュリティリスクを回避できます。このドキュメントでは、RAM ユーザーを作成して権限を付与する方法について説明します。権限が付与されると、RAM ユーザーは MSE を使用できるようになります。
ユースケース
所属企業で MSE を使用しており、従業員のロールに基づいて権限を管理する必要があるとします。要件は次のとおりです。
セキュリティ上の理由から、Alibaba Cloud アカウントの AccessKey を従業員に直接公開したくありません。代わりに、各従業員のアカウントに権限を付与したいと考えています。
ユーザーは、権限を付与されたリソースにのみアクセスできます。すべての費用は企業のメインアカウントに請求されるため、個々のアカウントで別途請求処理を行う必要はありません。
ユーザーアカウントからの権限の取り消しや、アカウントの削除はいつでも実行できます。
マネージド製品として、MSE には主に開発者と運用担当者という 2 つのロールが想定されます。運用担当者はクラスター、名前空間、権限の管理を担当し、開発者は設定とサービスの管理を担当します。
使用方法
このドキュメントでは、下図に示すエンジン管理リンクのアクセス権限の設定方法と使用方法について説明します。Alibaba Cloud アカウントが RAM ユーザーに権限を付与すると、RAM ユーザーはコンソールおよび OpenAPI から対応する権限を取得します。

Nacos クライアントが RAM ユーザーとして MSE の Nacos エンジンにアクセスできるようにする、エンジン直接接続リンクのアクセス認証の設定と使用方法については、「SDK アクセスの権限付与」をご参照ください。
ステップ 1: RAM ユーザーの作成
Alibaba Cloud アカウントで RAM コンソールにログインし、RAM ユーザーを作成します。
Alibaba Cloud アカウント (メインアカウント) または管理権限 (
AliyunRAMFullAccess) を持つ RAM ユーザーとして RAM コンソールにログインします。左側のメニューで、 を選択します。
ユーザー ページで、ユーザーの作成 をクリックします。
ユーザーの作成 ページの ユーザーアカウント情報 セクションで、ユーザーの基本情報を設定します。
ログイン名 (必須):ログイン名には、文字、数字、ピリオド (.)、ハイフン (-)、アンダースコア (_) を使用できます。長さは最大 64 文字です。
[Display Name (Optional)]:表示名は最大 128 文字です。
Tag (任意):
をクリックし、タグキーとタグ値を入力します。タグはユーザーの管理に役立ちます。
説明ユーザーの追加 をクリックすると、一度に複数の RAM ユーザーを作成できます。
Access Method セクションで、パスワードによるコンソールログイン または [Programmatic Access] を選択します。
パスワードによるコンソールログイン:ログインパスワードの自動生成またはカスタマイズ、次回ログイン時のパスワードリセットの要求、多要素認証 (MFA) の要求など、コンソールログインの基本的なセキュリティ設定を行うことができます。
説明カスタムログインパスワードを設定する場合、パスワードは で設定したパスワードの複雑さのルールを満たす必要があります。パスワードの複雑さのルールの設定方法の詳細については、「RAM ユーザーのパスワードポリシーの設定」をご参照ください。
[Programmatic Access]:RAM ユーザー用の AccessKey ペアが自動的に生成されます。RAM ユーザーは、この AccessKey ペアを使用して、API または他の開発ツールで Alibaba Cloud にアクセスできます。
説明セキュリティ上の理由から、RAM ユーザーにはコンソールアクセスのみを選択することを推奨します。これにより、退職したユーザーが AccessKey を使用して Alibaba Cloud のリソースにアクセスするのを防ぐことができます。
[OK] をクリックします。
ステップ 2: RAM ユーザーへの権限の追加
RAM ユーザーが Alibaba Cloud のサービスを使用する前に、必要な権限を付与する必要があります。
RAM 管理者として RAM コンソールにログインします。
左側のメニューで、Identities > Users を選択します。
[Users] ページで、対象の RAM ユーザーを見つけ、[Actions] 列の [Add Permissions] をクリックします。
複数の RAM ユーザーを選択し、ユーザーリストの下にある [Add Permissions] をクリックして、一括で権限を付与することもできます。
権限の付与 パネルで Policies を選択します。テキストボックスに追加したいポリシーの名前を入力し、検索結果からポリシーをクリックして、[OK] をクリックします。
システムポリシー (粗粒度の権限付与)
MSE は、粗粒度の権限付与のために 2 つのシステムポリシーを提供します。
ポリシー名
説明
AliyunMSEFullAccess
このポリシーは、RAM ユーザーにコンソールでの完全な管理権限を付与します。
AliyunMSEReadOnlyAccess
このポリシーは、RAM ユーザーに Alibaba Cloud アカウント配下のすべてのリソースに対する読み取り専用アクセス権を付与します。
説明運用担当者にはリソースの作成と削除を許可するために AliyunMSEFullAccess ポリシーを付与し、開発者にはリソースの表示のみを許可し作成や削除を許可しないように AliyunMSEReadOnlyAccess ポリシーを付与することを推奨します。開発者の権限をより詳細に制御するには、カスタムポリシーを使用します。
カスタムポリシー (きめ細かい粒度の権限付与)
説明よりきめ細かい粒度の権限付与を行うには、カスタムポリシーを作成します。
Nacos レジストリの権限付与の粒度と設定については「レジストリのきめ細かい粒度の権限付与」を、Nacos 設定センターの権限付与の粒度と設定については「設定センターのきめ細かい粒度の権限付与」をご参照ください。
以下の表は、カスタムポリシーの作成に役立つ、MSE のアクションと RAM 権限の対応を示したものです。
アクション
説明
読み取り専用
CreateCluster
クラスターを作成します。
いいえ
DeleteCluster
クラスターを削除します。
いいえ
QueryClusterDetail
クラスターの詳細を取得します。
はい
RestartCluster
クラスターを再起動します。
いいえ
RetryCluster
クラスター操作を再試行します。
いいえ
UpdateCluster
クラスターを更新します。
いいえ
CreateNacosConfig
Nacos の設定を作成します。
いいえ
DeleteNacosConfig
Nacos の設定を削除します。
いいえ
DeleteNacosConfigs
Nacos の設定を一括で削除します。
いいえ
GetNacosConfig
Nacos の設定を取得します。
はい
GetNacosHistoryConfig
Nacos の設定の履歴を取得します。
はい
UpdateNacosConfig
Nacos の設定を更新します。
いいえ
UpdateNacosInstance
インスタンスを更新します。
いいえ
DeleteNacosService
サービスを削除します。
いいえ
CreateNacosService
サービスを作成します。
いいえ
UpdateNacosService
サービスを更新します。
いいえ
CreateNacosInstance
インスタンスを作成します。
いいえ
UpdateNacosCluster
サービスクラスターを更新します。
いいえ
以下の API 操作はアカウントレベルの権限付与のみをサポートしており、インスタンスによるフィルタリングはサポートしていません。
アクション
説明
読み取り専用
ListClusters
クラスターのリストを取得します。
はい
ListServiceQuotas
クォータ制限を照会して表示します。この権限を付与することを推奨します。
はい
以下の API 操作はインスタンスレベルの権限付与のみをサポートしており、きめ細かいフィルタリングはサポートしていません。
アクション
説明
読み取り専用
ListNacosConfigs
Nacos 設定のリストを取得します。
はい
ListNacosHistoryConfigs
Nacos 設定のバージョン履歴を取得します。
はい
ListAnsServices
すべてのサービスのリストを取得します。
はい
ListAnsServiceClusters
サービス内のクラスターを取得します。
はい
ListAnsInstances
サービスのインスタンスを取得します。
はい
例 1: RAM ユーザーに、インスタンス
mse-cn-0pp1j8om80aに対する読み取りおよび書き込み権限を付与します。説明本書では、
mse-cn-0pp1j8om80aはクラスター ID ではなく、インスタンス ID を指します。{ "Statement": [ { "Action": "mse:ListClusters", "Resource": "acs:mse:*:*:*", "Effect": "Allow" }, { "Action": "mse:*", "Resource": "acs:mse:*:*:instance/mse-cn-0pp1j8om80a", "Effect": "Allow" } ], "Version": "1" }例 2: RAM ユーザーにすべてのインスタンスに対する読み取り権限を付与します。
{ "Statement": [ { "Action": [ "mse:List*", "mse:Query*", "mse:Get*" ], "Resource": "acs:mse:*:*:*", "Effect": "Allow" } ], "Version": "1" }例 3: RAM ユーザーに、名前空間
3fd98c48-a709-4061-bba1-e341d79d681b内のインスタンスmse-cn-0pp1j8om80aの構成に対する読み取りおよび書き込み権限を付与します。この複雑なシナリオでは、以下の権限が必要です。
クラスターをリストする権限。これにより、ユーザーは対象のクラスターを見つけることができます。
クラスターに対するすべての読み取り権限。これにより、ユーザーはインスタンスにアクセスし、そのすべてのリソースを表示できます。
指定された名前空間で設定を作成および変更する権限。
{ "Version": "1", "Statement": [{ "Action": [ "mse:ListClusters" ], "Resource": [ "acs:mse:*:*:*" ], "Effect": "Allow" }, { "Action": [ "mse:List*", "mse:Query*", "mse:Get*" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a" ], "Effect": "Allow" }, { "Action": [ "mse:CreateNacosConfig", "mse:UpdateNacosConfig" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a/3fd98c48-a709-4061-bba1-e341d79d681b" ], "Effect": "Allow" } ] }例 4: RAM ユーザーに、インスタンス
mse-cn-0pp1j8om80a内の特定の DataId の設定に対する読み取りおよび書き込み権限を付与します。この複雑なシナリオでは、以下の権限が必要です。
クラスターをリストする権限。これにより、ユーザーは対象のクラスターを見つけることができます。
クラスターに対するすべての読み取り権限。これにより、ユーザーはインスタンスにアクセスし、そのすべてのリソースを表示できます。
指定された名前空間で設定を作成および変更する権限。
指定されたグループで設定を作成および変更する権限。
リソース ARN の形式:
acs:mse:*:*:instance/${instanceId}/${namespaceId}/${groupId}/${dataId}
{ "Version": "1", "Statement": [{ "Action": [ "mse:ListClusters" ], "Resource": [ "acs:mse:*:*:*" ], "Effect": "Allow" }, { "Action": [ "mse:List*", "mse:Query*", "mse:Get*" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a" ], "Effect": "Allow" }, { "Action": [ "mse:CreateNacosConfig", "mse:UpdateNacosConfig" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a/3fd98c48-a709-4061-bba1-e341d79d681b/DEFAULT_GROUP/prod.yaml" ], "Effect": "Allow" } ] }例 5: RAM ユーザーに、インスタンス
mse-cn-0pp1j8om80a内の特定のサービスの設定に対する読み取りおよび書き込み権限を付与します。この複雑なシナリオでは、以下の権限が必要です。
クラスターをリストする権限。これにより、ユーザーは対象のクラスターを見つけることができます。
クラスターに対するすべての読み取り権限。これにより、ユーザーはインスタンスにアクセスし、そのすべてのリソースを表示できます。
指定された名前空間で設定を作成および変更する権限。
指定されたグループで設定を作成および変更する権限。
リソース ARN の形式:
acs:mse:*:*:instance/${instanceId}/${namespaceId}/${groupId}/${serviceName}{ "Version": "1", "Statement": [{ "Action": [ "mse:ListClusters" ], "Resource": [ "acs:mse:*:*:*" ], "Effect": "Allow" }, { "Action": [ "mse:List*", "mse:Query*", "mse:Get*" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a" ], "Effect": "Allow" }, { "Action": [ "mse:CreateNacosConfig", "mse:UpdateNacosConfig" ], "Resource": [ "acs:mse:*:*:instance/mse-cn-0pp1j8om80a/3fd98c48-a709-4061-bba1-e341d79d681b/DEFAULT_GROUP/test-service" ], "Effect": "Allow" } ] }
権限の付与 パネルで、権限が付与された後、Close をクリックします。
次のステップ
RAM ユーザーを作成した後、そのログイン認証情報 (ユーザー名とパスワード) または AccessKey を共有します。ユーザーはこれらの認証情報を使用して、コンソールにログインしたり、API を呼び出したりすることができます。
コンソールへのログイン
RAM ユーザーログイン ページに移動します。
[RAM User Logon] ページで、RAM ユーザー名を入力し、Next をクリックします。RAM ユーザーのパスワードを入力し、[Log On] をクリックします。
説明RAM ユーザーのログオン名は、
<$username>@<$AccountAlias>または<$username>@<$AccountAlias>.onaliyun.comの形式です。<$AccountAlias> はアカウントエイリアスです。アカウントエイリアスが設定されていない場合、デフォルトで Alibaba Cloud アカウントの ID が使用されます。ユーザーのホームページから、アクセス権のある製品をクリックします。
API 操作の呼び出し
API を呼び出すには、コード内で RAM ユーザーの AccessKey ID と AccessKey Secret を使用します。