2021年8月18日以降、Container Service for Kubernetes (ACK) は、Resource Access Management (RAM) のユーザーとロールがAPI呼び出しを行うときに、強化された認証を実装します。 不正なAPI呼び出しによる認証エラーを防ぐには、Alibaba Cloudアカウント内のRAMユーザーとロールにアタッチされているRAMポリシーを確認し、必要に応じて必要な権限を追加する必要があります。
影響
強化された認証を使用した後、RAMユーザーまたはロールが不正な操作を実行しようとすると、ACKコンソールまたはAPIは、RAMポリシーForbiddenまたはSTSTokenポリシーForbiddenの内容を含むエラーメッセージを返します。 操作の実行に必要なRAMアクションもエラーメッセージに含まれています。
次のエラーメッセージに、cs:DescribeEventsという名前のRAMアクションが含まれています。
RAMポリシーForbidden for action cs:DescribeEvents
次の表に、API操作と、API操作を呼び出すために必要なRAMアクションを示します。 RAMユーザーまたはロールが次の表のAPI操作を呼び出す権限がない場合は、RAMコンソールにログインし、RAMユーザーまたはロールに必要な権限を付与します。
API 操作 | RAMアクション | 説明 |
DescribeEvents | cs:DescribeEvents | |
StartAlert | cs:StartAlert | |
StopAlert | cs:StopAlert | |
DeleteAlertContact | cs:DeleteAlertContact | |
DeleteAlertContactGroup | cs:DeleteAlertContactGroup | |
OpenAckService | cs:OpenAckService | |
DescribeClusterResources | cs:DescribeClusterResources | |
DescribeUserQuota | cs:DescribeUserQuota | |
DescribeClustersV1 | cs:DescribeClustersV1 | |
DescribeExternalAgent | cs:DescribeExternalAgent | |
DescribeKubernetes VersionMetadata | cs:DescribeKubernetes VersionMetadata | |
DescribeClusterAddonUpgradeStatus | cs:DescribeClusterAddonUpgradeStatus | |
DescribeClusters | cs:DescribeClusters | |
DescribeClusterNamespaces | cs:DescribeClusterNamespaces | |
ModifyCluster | cs:ModifyCluster | |
MigrateCluster | cs:MigrateCluster | |
UpdateK8sClusterUserConfigExpire | cs:UpdateK8sClusterUserConfigExpire | |
DescribeClusterNodes | cs:DescribeClusterNodes | |
DescribeClusterAttachScripts | cs:DescribeClusterAttachScripts | |
GetUpgradeStatus | cs:GetUpgradeStatus | |
UpgradeCluster | cs:UpgradeCluster | |
PauseClusterUpgrade | cs:PauseClusterUpgrade | |
CancelClusterUpgrade | cs:CancelClusterUpgrade | |
CreateTemplate | cs:CreateTemplate | |
DescribeTemplates | cs:DescribeTemplates | |
DescribeTemplateAttribute | cs:DescribeTemplateAttribute | |
UpdateTemplate | cs:UpdateTemplate | |
DeleteTemplate | cs:DeleteTemplate | |
CreateKubernetesトリガー | cs:CreateKubernetesトリガー | |
GetKubernetesトリガー | cs:GetKubernetesトリガー | |
DeleteKubernetesトリガー | cs:DeleteKubernetesトリガー | |
InstallClusterAddons | cs:InstallClusterAddons | |
DescribeAddons | cs:DescribeAddons | |
DescribeClusterAddonsUpgradeStatus | cs:DescribeClusterAddonsUpgradeStatus | |
DescribeClusterAddonsVersion | cs:DescribeClusterAddonsVersion | |
ModifyClusterConfiguration | cs:ModifyClusterConfiguration | |
UpgradeClusterAddons | cs:UpgradeClusterAddons | |
PauseComponentUpgrade | cs:PauseComponentUpgrade | |
ResumeComponentUpgrade | cs:ResumeComponentUpgrade | |
CancelComponentUpgrade | cs:CancelComponentUpgrade | |
UnInstallClusterAddons | cs:UnInstallClusterAddons | |
CreateAutoscalingConfig | cs:CreateAutoscalingConfig |
RAMポリシーの変更
次の例は、RAMユーザーまたはロールにアタッチされているRAMポリシーを変更する方法を示しています。 RAM権限付与の詳細については、「RAMを使用したクラスターおよびクラウドリソースへのアクセス許可」をご参照ください。
シナリオ1: RAMユーザーはクラスターでcs:Get * 操作のみを実行でき、クラスターに関連するすべての読み取り専用操作に対する権限が必要です
次のコードブロックは、RAMユーザーがクラスターでcs:Get *
アクションのみを実行できる場合のRAMポリシーを示しています:
{
"Statement": [
{
"Action": "cs:Get*",
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}
RAMユーザーがクラスターに関連するすべての読み取り専用操作に対する権限を必要とする場合は、次のコードブロックに示すようにRAMポリシーを変更します
。{
"Statement": [
{
"Action": [
"cs:Get*",
"cs: リスト *" 、
"cs:Describe *"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}
cs:Get *
アクションには、すべての読み取り専用操作は含まれません。 すべての読み取り専用操作に対してRAMユーザーに権限を付与するには、RAMポリシーにcs:List *
およびcs:Describe *
アクションを追加する必要があります。
シナリオ2: RAMユーザーにクラスターに関連する個々の操作に対する権限を付与
クラスターに関連する個々の操作に対する権限をRAMユーザーに付与するには、RAMポリシーの操作に対応するRAMアクションを追加するだけで済みます。
次のコードブロックは、現在のRAMポリシーを示しています:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs: リスト *" 、
"cs:Describe *"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}
ModifyCluster
操作の権限を強化するには、次のコードブロックに示すように、対応するRAMアクションcs:ModifyCluster
をRAMポリシーに追加する必要があります
。
"Statement": [
{
"Action": [
"cs:Get*",
"cs: リスト *" 、
"cs:Describe *" 、
"cs:ModifyCluster"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}
シナリオ3: 個々のクラスターに固有ではない操作に対するRAMユーザー権限の付与
CreateCluster
、DescribeClusters
、DescribeEvents
など、一部のAPI操作は個々のクラスターに固有ではありません。 これらの操作に対してRAMユーザーに権限を付与するには、Resource
セクションでクラスターIDを指定しないでください。
次のコードブロックは、現在のRAMポリシーを示しています:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs: リスト *" 、
"cs:Describe *"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}
DescribeEvents
操作に対する権限を付与するには、次のコードブロックに示すように、対応するRAMアクションcs:DescribeEvents
をRAMポリシーに追加する必要があります
。
"Statement": [
{
"Action": [
"cs:DescribeEvents"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs: リスト *" 、
"cs:Describe *"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197 ****"
]
}
],
"バージョン": "1"
}