デフォルトでは、Resource Access Management (RAM) ユーザーとRAMロールには、Alibaba CloudサービスAPIを呼び出す権限がありません。 Container Service for Kubernetes (ACK) のAPIを使用するには、RAMユーザーとRAMロールに権限を付与する必要があります。 このトピックでは、クラスターとクラウドリソースにアクセスするためにRAMユーザーとRAMロールに権限を割り当てるプロセスについて説明します。
システムポリシーのアタッチ
この方法を使用して、Alibaba Cloudアカウントのすべてのクラスターに対するRAMユーザーとRAMロールの読み取りおよび書き込み権限を付与できます。 Alibaba CloudアカウントのすべてのACKクラスターでO&M権限が必要なRAMユーザーまたはRAMロールの場合、迅速な承認のためにシステムポリシーを使用することを推奨します。 次の表に、ACKで一般的に使用されるシステムポリシーを示します。
システムポリシーのフルレベルの権限は非常にリスクが高いと見なされます。 潜在的なセキュリティ問題を回避するために、慎重にそれらを付与することを推奨します。
Alibaba Cloudアカウントには、アカウント内のリソースに対する完全な管理権限があります。 RAMユーザーを作成し、RAMユーザーにAdministratorAccessポリシーをアタッチできます。 その後、RAMユーザーをアカウント管理者として使用して、Alibaba cloudアカウントに属するすべてのクラウドリソースを管理できます。 詳細については、「アカウント管理者としてのRAMユーザーの作成」をご参照ください。
RAMコンソールRAM管理者として ログインします。
左側のナビゲーションウィンドウで、 を選択します。
ユーザーページで必要なRAMユーザーを見つけ、アクション列で権限の追加をクリックします。
複数のRAMユーザーを選択し、ページ下部の [権限の追加] をクリックして、RAMユーザーに一度に権限を付与することもできます。
権限付与パネルで、RAMユーザーに権限を付与します。
[リソーススコープ] パラメーターを設定します。
アカウント: 権限付与は、現在のAlibaba Cloudアカウントで有効になります。
ResourceGroup: 特定のリソースグループに対して権限付与が有効になります。
重要[リソーススコープ] パラメーターで [リソースグループ] を選択した場合、必要なクラウドサービスがリソースグループをサポートしていることを確認します。 詳細については、「リソースグループで動作するサービス」をご参照ください。 リソースグループに権限を付与する方法の詳細については、「リソースグループを使用してRAMユーザーに特定のECSインスタンスを管理する権限を付与する」をご参照ください。
Principalパラメーターを設定します。
プリンシパルは、権限を付与するRAMユーザーです。 現在のRAMユーザーが自動的に選択されます。
アタッチするシステムポリシーを選択します。
[権限付与] をクリックします。
クリック閉じる.
カスタムポリシーのアタッチ
この方法を使用して、クラウドリソースに対するRAMユーザーとRAMロールの権限をきめ細かく制御できます。 カスタムポリシーは、RAMユーザーとRAMロールの特定のセキュリティとアクセス要件に合わせて、クラウドリソースのきめ細かなアクセス制御を可能にします。 たとえば、ユーザーの権限を特定のクラスターに制限するには、カスタムポリシーを作成します。 さらに、RAMユーザーがSDKを使用してカスタム開発の権限を必要とする場合、この方法を使用して、RAMユーザーに指定されたAPI操作を呼び出す権限を付与できます。 RAMでサポートされている権限付与操作の詳細については、「RAM権限付与」をご参照ください。
カスタムポリシーを作成するには、ポリシーの基本構造と構文を理解する必要があります。 詳細については、「ポリシー要素」をご参照ください。
手順 1:カスタムポリシーの作成
RAMコンソールRAM管理者として ログインします。
左側のナビゲーションウィンドウで、を選択します。
ポリシーページでポリシーの作成ををクリックします。
[ポリシーの作成] ページで、[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
次の設定オプションから選択します。
クラスターID
をクラスターの実際のIDに置き換えます。1つのクラスターに権限を付与
"Resource": [ "acs:cs:*:*:cluster/cluster ID" ]
複数のクラスターへの権限付与
"Resource": [ "acs:cs:*:*:cluster/cluster ID", "acs:cs:*:*:cluster/cluster ID" ]
すべてのクラスターに権限を付与
"Resource": [ "*" ]
[次へ] をクリックし、ポリシーの名前を入力して [OK] をクリックします。
[ポリシー] ページに戻ります。 ポリシーの名前または説明を検索ボックスに入力して、ポリシーを検索できます。
手順2: RAMユーザーまたはRAMロールにカスタムポリシーをアタッチする
カスタムポリシーは、システムポリシーをアタッチするのと同じ方法でアタッチできます。 詳細については、「システムポリシーのアタッチ」をご参照ください。
カスタムポリシーの例
例1: 指定したクラスターに読み取り専用権限を付与する
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<yourclusterID>" # Target cluster ID.
]
}
],
"Version": "1"
}
例2: 指定したOSSバケットに読み取り権限を付与する
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo",
"oss:GetBucketTagging",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:myphotos"
},
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:GetObjectAcl"
],
"Resource": "acs:oss:*:*:myphotos/*"
}
]
}
例3: 権限を付与してクラスター以外のAPI操作を呼び出す
RAMユーザーにDescribeEventsなどの非クラスター固有のAPIを呼び出す権限を付与する場合は、ポリシーコンテンツの [リソース] フィールドにクラスターIDを指定しないでください。 次の表は、変更前と変更後のRAMポリシーの比較を示しています。
変更前 | 変更後 |
|
|
次に何をすべきか
RAM権限付与後に内部リソースを管理するには、クラスター内のKubernetesリソースのRAMユーザーにRBAC権限を付与します。 RBAC権限付与の詳細については、「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。
他のクラウドサービスにアクセスするACKクラスター内のアプリケーションのセキュリティを強化するには、ポッド権限の分離のためにサービスアカウントのRAMロール (RRSA) を使用してServiceAccountのRAM権限を設定します。 詳細については、「RRSAを使用して異なるポッドに異なるクラウドサービスへのアクセスを許可する」をご参照ください。
詳細な権限管理を実装するには、「ラベルを使用して詳細なアクセス制御を実装する」および「ACK管理クラスターのワーカーRAMロールの権限を手動で制限する」をご参照ください。
承認に関連する問題の詳細については、「承認管理に関するFAQ」をご参照ください。