このトピックでは、カスタムRAM (Resource Access Management) ポリシーを作成する方法について説明します。 このトピックでは、カスタムRAMポリシーを作成し、RAMユーザーまたはRAMロールにアタッチして、RAMユーザーまたはRAMロールにContainer Service for Kubernetes (ACK) クラスターの照会、変更、および削除を行う権限を付与します。
前提条件
カスタムポリシーを作成する前に、ポリシー要素、構造、および構文に関する基本的な知識があります。 詳細については、「ポリシー要素」をご参照ください。
背景情報
ACKによって提供されるシステムポリシーは、粗粒である。 システムポリシーが要件を満たせない場合は、カスタムポリシーを作成して、ACKクラスターの詳細なアクセス制御を実装できます。 たとえば、指定したクラスターの操作権限を制御する場合は、このきめ細かい管理要件を満たすカスタムポリシーを作成する必要があります。
ロールベースのアクセス制御 (RBAC) を使用してRAMユーザーまたはRAMロールにクラスターを管理する権限を付与する前に、RAMコンソールでRAMユーザーまたはRAMロールにクラスターを管理する権限を付与する必要があります。 要件に基づいて、クラスターに対するRAMユーザーまたはRAMロールの読み取りおよび書き込み権限を付与できます。
読み取り権限: クラスター設定やkubeconfigファイルなど、指定されたクラスターに関する基本情報を表示します。
書き込み権限: クラスターのスケーリングとアップグレード、クラスターへのノードの追加と削除など、指定されたクラスターを管理します。
RAMユーザーまたはRAMロールに対してRBAC権限付与を実行する前に、RAMユーザーまたはRAMロールに、管理するクラスターに対する読み取り専用権限があることを確認してください。
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<yourclusterID>"
]
}
],
"Version": "1"
}
RAMユーザーまたはRAMロールにクラスターで必要なRAM権限が付与されたら、RBACを使用してRAMユーザーまたはRAMロールにクラスターリソースの管理を許可します。 詳細については、「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。
カスタマイズポリシーの作成
Alibaba Cloudアカウントを使用して、または許可されたRAMユーザーまたはRAMロールとしてRAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] をクリックします。 次に、policy Documentコードエディターにポリシーの内容を入力します。
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/Cluster ID" ] }], "Version": "1" }
次の説明に基づいてポリシーを設定します。
[アクション]
フィールドに付与する権限を入力します。説明アクションフィールドでワイルドカード文字を使用できます。
要件に基づいて
[リソース]
フィールドを設定します。1つのクラスターに権限を付与する
"Resource": [ "acs:cs:*:*:cluster/Cluster ID" ]
複数のクラスターに対する権限の付与
"Resource": [ "acs:cs:*:*:cluster/Cluster ID", "acs:cs:*:*:cluster/Cluster ID" ]
すべてのクラスターに権限を付与する
"Resource": [ "*" ]
クラスターID
をクラスターのIDに置き換えます。
ポリシーを編集した後、ポリシー情報を編集する次に、入力します。名前をクリックし、OK.
[ポリシー] ページに戻ります。 検索ボックスにポリシー名またはメモを入力し、検索アイコンをクリックして、新しく作成されたポリシーを検索できます。
関連ドキュメント
RAMユーザーまたはRAMロールにクラスター固有でないAPI操作を呼び出す権限を付与
RAMユーザーまたはRAMロールに、DescribeEventsなどの非クラスター固有のAPIを呼び出す権限を付与する場合は、ポリシーコンテンツの [リソース] フィールドにクラスター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"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}