デフォルトでは、Container Service for Kubernetes (ACK) マネージドクラスターは、すべてのノードで共有される単一のワーカー Resource Access Management (RAM) ロールを作成します。クラスター内のすべてのノードが同じ権限を継承するため、意図しない過剰な権限付与が発生する可能性があります。各ノードプールにカスタムワーカー RAM ロールを割り当てることで、ノードプールレベルで権限を分離し、クラスター内のすべてのノードが同じ権限を共有するリスクを低減します。
前提条件
作業を開始する前に、以下を確認してください。
-
Kubernetes 1.22 以降を実行している ACK マネージドクラスター。詳細については、「ACK マネージドクラスターの作成」をご参照ください。
制限事項
-
カスタムワーカー RAM ロールは、クラスターまたはノードプールの 作成 時にのみ割り当てることができます。既存のノードプールのワーカー RAM ロールは変更できません。
ステップ 1:RAM ロールの作成
RAM ロールは、次の 2 つの要件を満たす必要があります:
-
ロール名は、
KubernetesMasterRole-またはKubernetesWorkerRole-で始まっては いけません。 -
信頼できるサービスは Elastic Compute Service である必要があります。
以下のいずれかの方法でロールを作成します。
コンソール
「通常のサービスロールの作成」の手順に従います。信頼できるサービスの選択を求められたら、[Elastic Compute Service] を選択します。
OpenAPI または Terraform
OpenAPI または Terraform を使用してロールを作成し、次のように信頼ポリシーを設定します。 詳細については、「RAM ロールの信頼ポリシーを編集する」をご参照ください。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"ecs.aliyuncs.com"
]
}
}
],
"Version": "1"
}
ステップ 2:ノードプール作成時のロールの割り当て
ACK コンソールでクラスターまたはノードプールを作成する際に、[詳細オプション] を展開し、[ワーカー RAM ロール] をステップ 1 で作成したロールに設定します。
各フィールドのガイダンスについては、以下をご参照ください:
RAM ユーザーまたはロールへの ram:PassRole 権限の付与
RAM ユーザーまたは RAM ロールとして操作している場合は、ノードプールの作成時にワーカー RAM ロールを割り当てるために ram:PassRole 権限も必要です。
RAM ユーザーまたは RAM ロールにすでに AliyunCSFullAccess 権限がある場合、ram:PassRole 権限は不要です。
以下のいずれかの権限ポリシーの例を使用します。ポリシーの作成とアタッチの手順については、「カスタムポリシーの作成」、「RAM ユーザーへの権限付与」、および「RAM ロールへの権限付与」をご参照ください。
特定の RAM ロールの承認
<role_arn> をご自身の RAM ロールの ARN に置き換えます。ARN を確認するには、「RAM ロールの ARN を表示する方法」をご参照ください。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": [
"<role_arn>"
],
"Condition": {
"StringEquals": {
"acs:Service": [
"cs.aliyuncs.com"
]
}
}
}
]
}
すべての RAM ロールの承認
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:Service": [
"cs.aliyuncs.com"
]
}
}
}
]
}
次のステップ
新規作成された RAM ロールには、デフォルトでは権限がありません。ノードプールに必要な権限を付与し、不要になった権限は取り消してください。
権限の付与
-
コンソール:「カスタムポリシーの作成」および「RAM ロールへの権限付与」
-
OpenAPI:CreatePolicy および AttachPolicyToRole
-
Terraform:「Terraform を使用した RAM ロールの作成と権限付与」
権限の取り消し
不要になった権限は、できるだけ早く取り消してください。詳細については、「RAM ロールからの権限の取り消し」をご参照ください。