デフォルトでは、Resource Access Management (RAM) ユーザーまたは RAM ロールは、Alibaba Cloud サービスの API を呼び出す権限を持っていません。Container Service for Kubernetes (ACK) および Alibaba Cloud Container Compute Service (ACS) の API を使用し、ACS コンソールでクラスターを表示するには、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。このトピックでは、システムポリシーまたはカスタムポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する方法について説明します。
前提条件
カスタムポリシーを作成する前に、ポリシー要素、構造、構文の基本的な知識が必要です。詳細については、ポリシー要素を参照してください。
システムポリシー
システムポリシーのアタッチ: この方法を使用すると、現在の Alibaba Cloud アカウントに属するすべてのクラスターに対する読み取りおよび書き込み権限を RAM ユーザーまたは RAM ロールに付与できます。Alibaba Cloud に属するすべての ACK クラスターに対する O&M 権限を付与するには、システムポリシーを使用することをお勧めします。
RAM ユーザーまたは RAM ロールにシステムポリシーをアタッチする
Alibaba Cloud アカウントは、アカウント内のリソースに対する完全な管理権限を持っています。RAM ユーザーを作成し、AdministratorAccess ポリシーをアタッチすることができます。その後、RAM ユーザーをアカウント管理者として使用して、Alibaba Cloud アカウントに属するすべてのクラウド リソースを管理できます。詳細については、アカウント管理者として RAM ユーザーを作成するを参照してください。
RAM 管理者として RAM コンソール にログオンします。
左側のナビゲーションペインで、 を選択します。
ユーザー ページで、必要な RAM ユーザーを見つけ、アクセス許可を追加アクション 列の をクリックします。
複数の RAM ユーザーを選択し、ページの下部にある 権限の追加 をクリックして、一度に複数の RAM ユーザーに権限を付与することもできます。
権限の付与 パネルで、RAM ユーザーに権限を付与します。
リソーススコープ パラメーターを設定します。
アカウント: 認証は現在の Alibaba Cloud アカウントに有効です。
リソースグループ: 認証は特定のリソースグループに有効です。
重要リソーススコープパラメーターにリソースグループを選択した場合は、必要なクラウドサービスがリソースグループをサポートしていることを確認してください。詳細については、リソースグループで動作するサービスを参照してください。リソースグループに権限を付与する方法の詳細については、リソースグループを使用して、特定の ECS インスタンスを管理する権限を RAM ユーザーに付与するを参照してください。
プリンシパルパラメーターを設定します。
プリンシパルは、権限を付与する RAM ユーザーです。現在の RAM ユーザーが自動的に選択されます。
アタッチするシステムポリシーを選択します。
権限の付与 をクリックします。
閉じる をクリックします。
カスタムポリシー
ACK が提供するシステムポリシーは粗粒度です。システムポリシーが要件を満たしていない場合は、カスタムポリシーを作成して、ACK クラスターに対してきめ細かいアクセス制御を実装できます。たとえば、指定されたクラスターに対する操作権限を制御する場合、きめ細かい管理のためにこの要件を満たすカスタムポリシーを作成する必要があります。
手順 1: カスタムポリシーを作成する
RAM 管理者として RAM コンソール にログオンします。
左側のナビゲーションペインで、 を選択します。
ポリシー ページで、ポリシーの作成 をクリックします。
ポリシーの作成 ページで、JSON タブをクリックし、ポリシーの内容を入力します。
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/クラスター ID" // クラスター ID を置き換えます。 ] }], "Version": "1" }
パラメーター
説明
Action
付与する権限。ワイルドカード文字がサポートされています。
Resource
クラスター ID
をクラスターの実際の ID に置き換えます。1 つのクラスターに権限を付与する
"Resource": [ "acs:cs:*:*:cluster/クラスター ID" ]
複数のクラスターに権限を付与する
"Resource": [ "acs:cs:*:*:cluster/クラスター ID", "acs:cs:*:*:cluster/クラスター ID" ]
すべてのクラスターに権限を付与する
"Resource": [ "*" ]
ポリシー情報を編集するには、次へ をクリックし、ポリシーの名前を入力して、OK をクリックします。
ポリシー ページに戻ると、ポリシーの名前または説明を検索ボックスに入力して、ポリシーを検索できます。
手順 2: カスタムポリシーを RAM ユーザーまたは RAM ロールにアタッチする
システムポリシーをアタッチするのと同じ方法で、カスタムポリシーをアタッチできます。詳細については、RAM ユーザーまたは RAM ロールにシステムポリシーをアタッチするを参照してください。
例
RAM ユーザーまたは RAM ロールにクラスター固有でない API 操作を呼び出す権限を付与する
DescribeEvents など、クラスター固有でない API 操作を呼び出す権限を RAM ユーザーに付与する場合、ポリシーコンテンツの Resource フィールドにクラスター ID を指定しないでください。
次のコードブロックは、現在の RAM ポリシーを示しています。
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
DescribeEvents 操作を呼び出す権限を付与するには、次のコードブロックに示すように、対応する RAM アクション cs:DescribeEvents
を RAM ポリシーに追加する必要があります。
{
"Statement": [
{
"Action": [
"cs:DescribeEvents" // DescribeEvents 操作を呼び出す権限を追加
],
"Effect": "Allow",
"Resource": [
"*" // クラスター ID を指定しない
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
次の手順
このトピックの手順を完了した後、RAM ユーザーまたは RAM ロールがクラスター内の内部リソースを管理できるように、Kubernetes リソースに対する RBAC 権限を付与する必要があります。詳細については、RAM ユーザーまたは RAM ロールに RBAC 権限を付与するを参照してください。
RAM ユーザーまたは RAM ロールに対して RBAC 認証を実行する前に、RAM ユーザーまたは RAM ロールが管理するクラスターに対する読み取り専用権限を持っていることを確認してください。
{ "Statement": [ { "Action": [ "cs:Get*", "cs:List*", "cs:Describe*" // 読み取り操作の権限 ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<yourclusterID>" // クラスター ID を指定 ] } ], "Version": "1" }