デフォルトでは、RAM ユーザーおよび RAM ロールは、クラウドサービスの API を呼び出すことができません。Container Service for Kubernetes (ACK) および Container Compute Service (ACS) の API を使用したり、ACS コンソールでクラスターを表示したりするには、必要な権限を付与する必要があります。
前提条件
カスタムポリシーを作成する前に、ポリシー言語の基本的な構造と構文を理解している必要があります。詳細については、「ポリシー要素」をご参照ください。
システムポリシー
RAM ユーザーまたは RAM ロールが、お客様の Alibaba Cloud アカウント内のすべてのクラスターに対する O&M 権限を必要とする場合、システムポリシーを使用して迅速に権限を付与します。
システムポリシーのアタッチ
Alibaba Cloud アカウント (root ユーザー) は、アカウント内のすべてのリソースに対する完全な権限を持っています。また、RAM ユーザーに AdministratorAccess 権限を付与して、アカウント管理者にすることもできます。この管理者は、アカウント内のすべてのクラウドリソースを管理できます。詳細については、「RAM ユーザーをアカウント管理者として作成する」をご参照ください。
-
RAM コンソールにログオンします。
-
左側のナビゲーションペインで、 を選択します。
-
ユーザー ページで、対象の RAM ユーザーを探し、操作 列 > ポリシーのアタッチ をクリックします。
また、複数の RAM ユーザーを選択し、ユーザーリストの下にあるポリシーのアタッチ をクリックして一括で権限を付与することもできます。
[Grant Permission] パネルで、ポリシーを選択し、権限付与を完了します。
-
[リソーススコープ]:
-
[アカウントレベル]:権限は、Alibaba Cloud アカウント内のすべてのリソースに適用されます。
-
[リソースグループ レベル]:権限は、指定されたリソースグループ内でのみ適用されます。ログイン後、RAM ユーザーは上部のナビゲーションバーで承認されたリソースグループに切り替える必要があります。
説明-
システムは、高リスクのシステムポリシー (AdministratorAccess や AliyunRAMFullAccess など) に警告インジケーターを表示します。これらのポリシーは通常、すべてのクラウドリソースへのフルコントロールまたは RAM の完全な管理権限を付与します。これらのポリシーは慎重に付与してください。
-
リソースグループの権限付与の例については、「特定の ECS インスタンスへの RAM ユーザーアクセスの制御」をご参照ください。
-
-
-
[プリンシパル]:
プリンシパルは権限を受け取る RAM ユーザーです。[ユーザー] ページからの場合、システムが現在のユーザーを自動選択します。[権限付与] ページからの場合は、手動でユーザーを選択する必要があります。一括選択がサポートされています。
アタッチするシステムポリシーを選択します。
[OK] をクリックし、次に [Close] をクリックして権限付与を完了します。
-
カスタムポリシー
ACK は、粒度の粗いシステムポリシーを提供します。これらがセキュリティ要件を満たさない場合は、カスタムポリシーを作成します。たとえば、特定のクラスターの権限管理など、きめ細かなアクセス制御にはカスタムポリシーが必要です。
ステップ1:カスタムポリシーの作成
RAM 管理者としてRAM コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
ポリシー ページで、ポリシーの作成 をクリックします。
[Create Policy] ページで、[JSON] タブをクリックし、次のポリシードキュメントを貼り付けます。
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ] }], "Version": "1" }パラメーター
説明
Action
付与する権限です。すべてのアクションでワイルドカードがサポートされています。
Resource
このパラメーターは、次のいずれかの方法で設定できます。
<cluster_id>を、お使いのクラスター ID (例:cae93341766c843479ae986b3305xxxxx) に置き換えます。単一クラスターへの権限付与
"Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ]複数クラスターへの権限付与
"Resource": [ "acs:cs:*:*:cluster/<cluster_id_1>", "acs:cs:*:*:cluster/<cluster_id_2>" ]全クラスターへの権限付与
"Resource": [ "*" ]
ポリシーの内容を貼り付けたら、[OK] をクリックします。表示されるダイアログボックスでポリシー名を入力し、[OK] をクリックします。
[Policies] ページに戻り、ポリシー名または説明で検索して、作成されたことを確認します。
ステップ2:カスタムポリシーのアタッチ
カスタムポリシーをアタッチする手順は、システムポリシーの場合と同じです。選択のステップで、作成したカスタムポリシーを選択します。詳細については、「システムポリシーのアタッチ」をご参照ください。
例
クラスターレベルの権限付与をサポートしない API 操作への権限付与
DescribeEvents などの一部の API 操作は、クラスターレベルの承認をサポートしていません。RAM ユーザーまたは RAM ロールにこれらの API 操作の権限を付与するには、Resource 要素にクラスター ID を指定しないでください。
たとえば、次の RAM ポリシーがあるとします。
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<cluster_id>"
]
}
],
"Version": "1"
}クラスターレベルの権限付与をサポートしない DescribeEvents API の権限を付与するには、新しいステートメントを追加します。このステートメントには、cs:DescribeEvents アクションを含め、ワイルドカードリソース (*) を指定する必要があります。変更後のポリシーは次のとおりです。
{
"Statement": [
{
"Action": [
"cs:DescribeEvents"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<cluster_id>"
]
}
],
"Version": "1"
}次のステップ
RAM 権限を付与した後、クラスター内の Kubernetes リソースを管理するために、ロールベースアクセス制御 (RBAC) 権限も設定する必要があります。詳細については、「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。
RBAC 権限を付与する前に、RAM ユーザーまたは RAM ロールが対象クラスターに対する読み取り専用の RAM 権限を持っていることを確認してください。以下にポリシーの例を示します。
{ "Statement": [ { "Action": [ "cs:Get*", "cs:List*", "cs:Describe*" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ] } ], "Version": "1" }