このトピックでは、Container Compute Service (ACS) でクラスターの照会、スケール、削除を行う権限を RAM ユーザーまたは RAM ロールに付与するために、カスタムポリシーを作成する方法を説明します。
前提条件
カスタムポリシーを作成する前に、ポリシー言語の基本構造と構文を理解する必要があります。詳細については、「ポリシー要素」をご参照ください。
背景情報
ACK が提供するシステムポリシーは、粒度の粗い権限を提供します。これらのポリシーが要件を満たさない場合は、カスタムポリシーを作成できます。たとえば、特定のクラスターに対する操作を制御するには、きめ細かな制御を実現するためにカスタムポリシーが必要です。
クラスター RBAC 権限を RAM ユーザーまたは RAM ロールに付与する前に、クラスター管理用の RAM 権限を付与する必要があります。対象クラスターに対して、RAM ユーザーまたは RAM ロールに読み取りまたは書き込みポリシーを付与できます。
-
読み取りポリシー:クラスター構成や kubeconfig ファイルなどの基本情報を表示できます。
-
書き込みポリシー:クラスターのスケール、アップグレード、削除などのクラスター管理タスクの権限を付与します。
RBAC 権限を付与するには、RAM ユーザーまたは RAM ロールに少なくともクラスターに対する読み取り専用権限が必要です。次のサンプルポリシーは、読み取り専用アクセスを付与します。
{
"Statement": [
{
"Action": [
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/"
]
}
],
"Version": "1"
}
RAM 権限を付与した後、クラスター内の Kubernetes リソースへのアクセスを許可するために、RBAC 権限を設定する必要があります。
カスタムポリシー
ACK によって提供されるシステムポリシーは粗粒度です。システムポリシーが要件を満たしていない場合は、カスタムポリシーを作成して、ACK クラスターに対してきめ細かいアクセス制御を実装できます。たとえば、指定されたクラスターに対する操作権限を制御する場合、きめ細かい管理のためにこの要件を満たすカスタムポリシーを作成する必要があります。
手順 1: カスタムポリシーを作成する
RAM 管理者として RAM コンソール にログインします。
左側のナビゲーションペインで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。

[ポリシーの作成] ページで、[JSON] タブをクリックし、ポリシーの内容を入力します。
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/Cluster ID" // クラスター ID を指定します ] }], "Version": "1" }パラメーター
説明
Action
付与する権限。ワイルドカード文字がサポートされています。
Resource
Cluster IDをクラスターの実際の ID(cae93341766c843479ae986b3305xxxxxなど)に置き換えます。1 つのクラスターに権限を付与する
"Resource": [ "acs:cs:*:*:cluster/Cluster ID" ]複数のクラスターに権限を付与する
"Resource": [ "acs:cs:*:*:cluster/Cluster ID", "acs:cs:*:*:cluster/Cluster ID" ]すべてのクラスターに権限を付与する
"Resource": [ "*" ]
内容を入力した後、[OK] をクリックします。表示されるダイアログボックスで、ポリシー名を入力し、[OK] をクリックしてポリシーを作成します。
[ポリシー] ページに戻り、ポリシーの名前または説明を検索ボックスに入力して、ポリシーを検索できます。
手順 2: カスタムポリシーを RAM ユーザーまたは RAM ロールにアタッチする
システムポリシーをアタッチするのと同じ方法で、カスタムポリシーをアタッチできます。詳細については、「RAM ユーザーまたは RAM ロールにシステムポリシーをアタッチする」をご参照ください。
関連ドキュメント
クラスター固有ではない ACK API 操作に対する権限の付与
DescribeEvents などの一部の ACK API 操作は、特定のクラスターに限定されません。これらの操作に対する権限を RAM ユーザーまたは RAM ロールに付与するには、Resource 要素でクラスター ID を指定しないでください。
たとえば、次のポリシーは、クラスター固有ではない操作に必要な、すべてのリソースに対する Describe* 権限を付与します。
{
"Statement": [
{
"Action": [
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
],
"Version": "1"
}