必要に応じて、RAM ユーザーおよび RAM ロールにさまざまな権限を付与できます。権限を付与された RAM ユーザーと RAM ロールのみが、メッシュインスタンスの作成やService Mesh の機能設定の更新など、ASM コンソールでの操作を実行できます。この方法により、Alibaba Cloud アカウントの AccessKey ペアが公開されることによるセキュリティリスクを防ぐことができます。このトピックでは、RAM ユーザーを例に、権限を付与する方法を説明します。
前提条件
RAM ユーザーと RAM ロールを作成済みであること。詳細については、「RAM ユーザーの作成」および「Alibaba Cloud アカウントを信頼されたエンティティとして使用する RAM ロールの作成」をご参照ください。
権限ポリシー言語の構造と構文について基本的な知識があること。詳細については、「ポリシーの構造と構文」をご参照ください。
背景情報
RAM ユーザーと RAM ロールはユースケースが異なるため、権限要件も異なります。
Service Mesh の操作にのみ権限が必要で、クラスターの操作は不要な RAM ユーザーまたは RAM ロールの場合、Service Mesh の権限を付与するだけで十分です。詳細については、「RAM ユーザーと RAM ロールへのシステムポリシーの付与」および「RAM ユーザーと RAM ロールへのカスタムポリシーの付与」をご参照ください。
メッシュ内での ACK クラスターの追加や削除など、Service Mesh とクラスターの両方の操作に権限が必要な RAM ユーザーまたは RAM ロールの場合、Service Mesh と対応するクラスターの両方に権限を付与する必要があります。詳細については、「RAM ユーザーと RAM ロールへのシステムポリシーの付与」、「RAM ユーザーと RAM ロールへのカスタムポリシーの付与」、および「RAM ユーザーへのクラスター権限の付与」をご参照ください。
RAM ユーザーと RAM ロールへのシステムポリシーの付与
ASM は、デフォルトで AliyunASMReadOnlyAccess と AliyunASMFullAccess のシステムポリシーを提供します。これらのポリシーは直接付与できます。これらのポリシーは、以下のとおりです。
AliyunASMReadOnlyAccess
Service Mesh を管理するための読み取り専用権限を付与します。このポリシーでは、Service Mesh のステータス表示やその他の読み取り専用操作のみが可能です。Service Mesh に変更を加えることはできません。
AliyunASMFullAccess
Service Mesh を管理するための完全な権限を付与します。このポリシーを持つ RAM ユーザーは、Alibaba Cloud アカウントと同等のメッシュリソースに対する権限を持ち、あらゆる操作を実行できます。
以下の手順では、AliyunASMReadOnlyAccess ポリシーを RAM ユーザーに付与する方法を説明します。RAM ユーザーと RAM ロールに権限を付与する方法の詳細については、「RAM ユーザーの権限管理」および「RAM ロールの権限管理」をご参照ください。
RAM コンソールにログオンします。
左側のナビゲーションペインで、 を選択します。
-
ユーザー ページで、対象の RAM ユーザーを探し、操作 列 > ポリシーのアタッチ をクリックします。
また、複数の RAM ユーザーを選択し、ユーザーリストの下にあるポリシーのアタッチ をクリックして一括で権限を付与することもできます。
権限の付与 パネルで、RAM ユーザーに権限を追加します。
-
[リソーススコープ]:
-
[アカウントレベル]:権限は、Alibaba Cloud アカウント内のすべてのリソースに適用されます。
-
[リソースグループ レベル]:権限は、指定されたリソースグループ内でのみ適用されます。ログイン後、RAM ユーザーは上部のナビゲーションバーで承認されたリソースグループに切り替える必要があります。
説明-
システムは、高リスクのシステムポリシー (AdministratorAccess や AliyunRAMFullAccess など) に警告インジケーターを表示します。これらのポリシーは通常、すべてのクラウドリソースへのフルコントロールまたは RAM の完全な管理権限を付与します。これらのポリシーは慎重に付与してください。
-
リソースグループの権限付与の例については、「特定の ECS インスタンスへの RAM ユーザーアクセスの制御」をご参照ください。
-
-
-
[プリンシパル]:
プリンシパルは権限を受け取る RAM ユーザーです。[ユーザー] ページからの場合、システムが現在のユーザーを自動選択します。[権限付与] ページからの場合は、手動でユーザーを選択する必要があります。一括選択がサポートされています。
すべてのポリシータイプ で システムポリシー をクリックします。検索ボックスに AliyunASMReadOnlyAccess と入力し、[AliyunASMReadOnlyAccess] をクリックします。
説明一度に最大 5 つのポリシーをアタッチできます。さらにポリシーをアタッチするには、この手順を繰り返してください。
[Grant permissions] をクリックします。
-
-
認可結果を確認し、[閉じる] をクリックします。
RAM ユーザーと RAM ロールへのカスタムポリシーの付与
きめ細かなアクセス制御が必要な場合は、カスタムポリシーを作成し、RAM ユーザーまたは RAM ロールに付与します。
メッシュインスタンス用アクセスポリシーの作成
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
ポリシー ページで、ポリシーの作成 をクリックします。
ポリシーの作成 ページで、JSON タブをクリックします。
ページには JSON エディターが表示されます。デフォルトのポリシーテンプレートには、
Version要素 ("1"に設定) とStatement配列が含まれています。各ステートメントには、Effect(デフォルトは"Allow")、Action、Resource、およびCondition要素が含まれます。ActionとResource要素を入力する必要があります。ポリシーの内容を入力し、次のステップ をクリックします。
Statement内のActionフィールドを変更することで、API 操作に対してきめ細かな認可を実装できます。このトピックでは、アクセス制限付きポリシーを例として使用します。このポリシーは、RBAC 認可を除く、Service Mesh のすべての RAM 権限を付与します。このポリシーを持つ RAM ユーザーは、他のユーザーに RBAC 権限を付与する操作以外のすべての操作を実行できます。ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。{ "Statement": [ { "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:ListProject" ], "Resource": "*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/audit-*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/istio-*" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "servicemesh.aliyuncs.com" } } } ], "Version": "1" }基本情報 セクションでポリシー名を入力します。この例では、ASMPolicy1 と入力し、OK をクリックします。
RAM ユーザーと RAM ロールへのカスタムポリシーの付与
本セクションでは、カスタムポリシーを RAM ユーザーに付与する方法を説明します。RAM ロールに権限を付与する方法の詳細については、「RAM ロールの権限管理」をご参照ください。
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
-
ユーザー ページで、対象の RAM ユーザーを探し、操作 列 > ポリシーのアタッチ をクリックします。
また、複数の RAM ユーザーを選択し、ユーザーリストの下にあるポリシーのアタッチ をクリックして一括で権限を付与することもできます。
権限の付与 パネルで、RAM ユーザーに権限を追加します。
-
[リソーススコープ]:
-
[アカウントレベル]:権限は、Alibaba Cloud アカウント内のすべてのリソースに適用されます。
-
[リソースグループ レベル]:権限は、指定されたリソースグループ内でのみ適用されます。ログイン後、RAM ユーザーは上部のナビゲーションバーで承認されたリソースグループに切り替える必要があります。
説明-
システムは、高リスクのシステムポリシー (AdministratorAccess や AliyunRAMFullAccess など) に警告インジケーターを表示します。これらのポリシーは通常、すべてのクラウドリソースへのフルコントロールまたは RAM の完全な管理権限を付与します。これらのポリシーは慎重に付与してください。
-
リソースグループの権限付与の例については、「特定の ECS インスタンスへの RAM ユーザーアクセスの制御」をご参照ください。
-
-
-
[プリンシパル]:
プリンシパルは権限を受け取る RAM ユーザーです。[ユーザー] ページからの場合、システムが現在のユーザーを自動選択します。[権限付与] ページからの場合は、手動でユーザーを選択する必要があります。一括選択がサポートされています。
すべてのポリシータイプ で カスタムポリシー をクリックします。検索ボックスに ASMPolicy1 と入力し、[ASMPolicy1] をクリックします。
説明一度に最大 5 つのポリシーをアタッチできます。さらにポリシーをアタッチするには、この手順を繰り返してください。
[Grant permissions] をクリックします。
-
-
認可結果を確認し、[閉じる] をクリックします。
カスタムポリシーの例
シナリオ1:単一メッシュへの権限の付与
次のポリシーを使用すると、単一のメッシュインスタンスを管理するための権限を付与できます。このポリシーが付与されると、RAM ユーザーまたは RAM ロールは指定されたメッシュインスタンスのみを管理できます。
ポリシーを作成する際に、ポリシー内の<ServicemeshId>を対象のメッシュインスタンスの ID に置き換えてください。
{
"Statement": [
{
"Effect": "Allow",
"Action": "servicemesh:*",
"Resource": "acs:servicemesh:*:*:servicemesh/<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "servicemesh:DescribeServiceMeshes",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/istio-<ServicemeshId>"
}
],
"Version": "1"
}シナリオ2:Istio リソースへの読み取り/書き込みアクセスの付与
組み込みの AliyunASMReadOnlyAccess システムポリシーは、RAM ユーザーまたは RAM ロールにService Mesh への読み取り専用権限を付与します。ただし、このポリシーを持つ RAM ユーザーまたはロールは、メッシュ内の Istio リソースを管理することはできません。
次のポリシーを使用すると、Istio リソースへの読み取りおよび書き込み権限を付与できます。このポリシーが RAM ユーザーまたは RAM ロールに付与されると、RAM ユーザーまたは RAM ロールは、ASM コンソールを使用してメッシュ内の Istio リソースを管理できますが、機能設定など、メッシュの他の部分に変更を加えることはできません。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:List*",
"servicemesh:Describe*",
"servicemesh:Get*",
"servicemesh:InvokeApiServer"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"log:ListLogStores",
"log:ListDashboard",
"log:GetDashboard",
"log:ListSavedSearch"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-*"
}
],
"Version": "1"
}シナリオ3:RBAC 認可権限の付与
次のポリシーを使用すると、他のユーザーまたはロールに対して RBAC 認可を実行するための権限を付与できます。このポリシーが RAM ユーザーまたは RAM ロールに付与されると、RAM ユーザーまたは RAM ロールは、ASM コンソールを使用して他の RAM ロールまたは RAM ユーザーの RBAC 権限を管理できますが、メッシュインスタンスの表示や操作はできません。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:DescribeUserPermissions",
"servicemesh:GrantUserPermissions",
"servicemesh:DescribeServiceMeshes",
"servicemesh:DescribeUsersWithPermissions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ims:ListUserBasicInfos",
"Resource": "*"
}
],
"Version": "1"
}