AWS IAM ロールのリスト

このページの表には、デフォルトの AWS IAM ロールの作成に使用されるすべての権限が記載されています。これらのポリシーをデフォルトの権限で作成するには、AWS IAM ロールを作成するをご覧ください。

GKE Multi-Cloud API サービス エージェントのロール
GKE Multi-Cloud API では、この AWS IAM ロールを使用して、AWS API でリソースを管理します。このロールは、サービス エージェントという Google 管理のサービス アカウントで使用されます。
コントロール プレーンの AWS IAM ロール
クラスタ コントロール プレーンは、このロールを使用してノードプールを制御します。
ノードプールの AWS IAM ロール
コントロール プレーンは、このロールを使用してノードプール VM を作成します。

組織の要件に応じて、GKE on AWS でクラスタを管理するために、カスタム AWS IAM ポリシーを作成することもできます。これらのポリシーは、デフォルトのバージョンに置き換わります。これらのポリシーを AWS IAM ロールに適用して、クラスタの作成時に提供します。

各ロールの目的の詳細については、GKE on AWS の AWS IAM ロールをご覧ください。

これらのポリシーを作成する場合は、リソースを制限するレベルを選択します。たとえば、VPC の Amazon Resource Name(ARN)を使用して、特定の AWS VPC にポリシーを制限できます。詳細については、ポリシーを使用した AWS リソースのアクセス制御をご覧ください。

GKE Multi-cloud サービス エージェントの IAM ポリシー

リソースタイプ ARN 必要な権限 目的 リファレンス
セキュリティ グループ arn:aws:ec2:*:*:security-group/sg-* ec2:DescribeSecurityGroups(作成、更新、削除)
ec2:CreateSecurityGroup(作成)
ec2:CreateTags(作成)
ec2:RevokeSecurityGroupEgress(作成)
ec2:DeleteSecurityGroup(削除)
コントロール プレーンのセキュリティ グループ
セキュリティ グループ ノードプールのセキュリティ グループ
セキュリティ グループ ルール arn:aws:ec2:*:*:security-group-rule/sgr-* ec2:AuthorizeSecurityGroupEgress(作成)
ec2:RevokeSecurityGroupEgress(削除)
ec2:CreateTags(作成)
コントロール プレーンの下り(外向き)セキュリティ グループ ルール
セキュリティ グループ ルール ec2:AuthorizeSecurityGroupIngress(作成)
ec2:RevokeSecurityGroupIngress(削除)
ec2:CreateTags(作成)
コントロール プレーンの上り(内向き)セキュリティ グループ ルール
セキュリティ グループ ルール ec2:AuthorizeSecurityGroupEgress(作成)
ec2:RevokeSecurityGroupEgress(削除)
ec2:CreateTags(作成)
コントロール プレーンの下り(外向き)セキュリティ グループ ルール
セキュリティ グループ ルール ec2:AuthorizeSecurityGroupIngress(作成)
ec2:RevokeSecurityGroupIngress(削除)
ec2:CreateTags(作成)
コントロール プレーンの上り(内向き)セキュリティ グループ ルール
ネットワーク ロードバランサ arn:aws:elasticloadbalancing:*:*:loadbalancer/net/gke-* elasticloadbalancing:DescribeLoadBalancers(作成、削除)
elasticloadbalancing:CreateLoadBalancer(作成)
ec2:CreateSecurityGroup(作成)
ec2:DescribeAccountAttributes(作成)
ec2:DescribeInternetGateways(作成)
ec2:DescribeSecurityGroups(作成)
ec2:DescribeSubnets(作成)
ec2:DescribeVpcs(作成)
iam:CreateServiceLinkedRole(作成)
elasticloadbalancing:DeleteLoadBalancer(削除)
Kubernetes api-server ロードバランサ Elastic Load Balancing API の権限
ターゲット グループ arn:aws:elasticloadbalancing:*:*:targetgroup/gke-* elasticloadbalancing:DescribeTargetGroups(作成、更新、削除)
elasticloadbalancing:DescribeTargetHealth(作成、更新)
elasticloadbalancing:CreateTargetGroup(作成)
elasticloadbalancing:ModifyTargetGroupAttributes(作成)
ec2:DescribeInternetGateways(作成)
ec2:DescribeVpcs(作成)
elasticloadbalancing:DeleteTargetGroup(削除)
https のターゲット グループ Elastic Load Balancing API の権限
ターゲット グループ konnectivity エージェントの https のターゲット グループ
リスナー arn:aws:elasticloadbalancing:*:*:listener/net/gke-* elasticloadbalancing:CreateListener(作成)
elasticloadbalancing:DeleteListener(削除) elasticloadbalancing:DescribeListeners(削除)
elasticloadbalancing:DeleteListener(削除)
https のリスナー
リスナー konnectivity エージェントの https リスナー
ボリューム arn:aws:ec2:*:*:volume/vol-* ec2:CreateVolume(作成)
ec2:CreateTags(作成)
ec2:DeleteVolume(削除)
etcd ボリューム
ネットワーク インターフェース arn:aws:ec2:*:*:network-interface/eni-* ec2:DescribeNetworkInterfaces更新
ec2:CreateNetworkInterface(作成)
ec2:CreateTags(作成)
ec2:ModifyNetworkInterfaceAttribute(更新)
ec2:DeleteNetworkInterface(削除)
etcd NIC
起動テンプレート arn:aws:ec2:*:*:launch-template/lt-* ec2:CreateLaunchTemplate(作成、更新)
ec2:CreateTags(作成、更新)
ec2:DeleteLaunchTemplate(削除)
コントロール プレーン インスタンスの起動テンプレート
起動テンプレート ノードプール インスタンスの起動テンプレート
自動スケーリング グループ arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/gke-* autoscaling:DescribeAutoScalingGroups(作成、更新、削除)
autoscaling:CreateAutoScalingGroup(作成)
autoscaling:CreateOrUpdateTags(更新)
autoscaling:UpdateAutoScalingGroup(更新、削除)
autoscaling:TerminateInstanceInAutoScalingGroup(更新)
autoscaling:DeleteTags(更新、削除)
autoscaling:DeleteAutoScalingGroup(削除)
iam:CreateServiceLinkedRole(作成)
ec2:RunInstances(作成)
iam:PassRole(作成)
コントロール プレーン インスタンスの自動スケーリング グループ Amazon EC2 自動スケーリングに必要な API 権限
自動スケーリング グループ arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/gke-* ノードプール インスタンスの自動スケーリング グループ サービスリンク ロールの作成に必要な権限
EC2 鍵ペア ec2:DescribeKeyPairs(作成) クラスタマシンへのログインに使用される EC2 認証鍵ペアが存在することを確認する。
サブネット ec2:DescribeSubnets(作成) VPC で追加のサブネットにアクセスする
VPC ec2:DescribeVpcs(作成) AWS VPC に関する情報
EC2 コンソール出力 ec2:GetConsoleOutput(作成、更新) コンソールログでエラーを確認する
KMS 鍵 For more information on KMS key policies for GKE on AWS Creating KMS keys with specific permissions

コントロール プレーン ロールの IAM ポリシー

目的 必要な権限 リファレンス
クラスタ オートスケーラー autoscaling:DescribeAutoScalingGroups(作成、更新)
autoscaling:DescribeAutoScalingInstances(作成、更新)
autoscaling:DescribeLaunchConfigurations(作成、更新)
autoscaling:DescribeTags(作成、更新)
ec2:DescribeInstanceTypes(作成、更新)
ec2:DescribeLaunchTemplateVersions(作成、更新)
autoscaling:SetDesiredCapacity
autoscaling:TerminateInstanceInAutoScalingGroup
https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md
cloud-provider-aws autoscaling:DescribeAutoScalingGroups
autoscaling:DescribeLaunchConfigurations
autoscaling:DescribeTags(作成)
ec2:DescribeInstances(作成)
ec2:DescribeRegions
ec2:DescribeRouteTables
ec2:DescribeSecurityGroups
ec2:DescribeSubnets
ec2:DescribeVolumes
ec2:CreateSecurityGroup
ec2:CreateTags
ec2:CreateVolume
ec2:ModifyInstanceAttribute
ec2:ModifyVolume
ec2:AttachVolume(作成)
ec2:AuthorizeSecurityGroupIngress
ec2:CreateRoute
ec2:DeleteRoute
ec2:DeleteSecurityGroup
ec2:DeleteVolume
ec2:DetachVolume
ec2:RevokeSecurityGroupIngress
ec2:DescribeVpcs
elasticloadbalancing:AddTags
elasticloadbalancing:AttachLoadBalancerToSubnets
elasticloadbalancing:ApplySecurityGroupsToLoadBalancer
elasticloadbalancing:CreateLoadBalancer
elasticloadbalancing:CreateLoadBalancerPolicy
elasticloadbalancing:CreateLoadBalancerListeners
elasticloadbalancing:ConfigureHealthCheck
elasticloadbalancing:DeleteLoadBalancer
elasticloadbalancing:DeleteLoadBalancerListeners
elasticloadbalancing:DescribeLoadBalancers
elasticloadbalancing:DescribeLoadBalancerAttributes
elasticloadbalancing:DetachLoadBalancerFromSubnets
elasticloadbalancing:DeregisterInstancesFromLoadBalancer
elasticloadbalancing:ModifyLoadBalancerAttributes
elasticloadbalancing:RegisterInstancesWithLoadBalancer
elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer
elasticloadbalancing:AddTags
elasticloadbalancing:CreateListener
elasticloadbalancing:CreateTargetGroup
elasticloadbalancing:DeleteListener
elasticloadbalancing:DeleteTargetGroup
elasticloadbalancing:DescribeListeners
elasticloadbalancing:DescribeLoadBalancerPolicies
elasticloadbalancing:DescribeTargetGroups
elasticloadbalancing:DescribeTargetHealth
elasticloadbalancing:ModifyListener
elasticloadbalancing:ModifyTargetGroup
elasticloadbalancing:RegisterTargets
elasticloadbalancing:DeregisterTargets
elasticloadbalancing:SetLoadBalancerPoliciesOfListener
iam:CreateServiceLinkedRole
kms:DescribeKey

https://github.com/kubernetes/cloud-provider-aws/blob/master/docs/prerequisites.md
ロードバランサを作成する elasticloadbalancing:CreateLoadBalancer
ec2:DescribeAccountAttributes
ec2:DescribeInternetGateways
ec2:DescribeSecurityGroups
ec2:DescribeSubnets
ec2:DescribeVpcs
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html
aws-ebs-csi-driver ec2:DescribeVolumesModifications
ec2:DeleteTags

ec2:DescribeAvailabilityZones

https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/master/docs#set-up-driver-permission
gke-aws-controller-manager ec2:DescribeDhcpOptions
ec2:DescribeInstances
ec2:DescribeVpcs
elasticloadbalancing:ModifyTargetGroupAttributes
ec2:DescribeSnapshots
ec2:CreateSnapshot
ec2:DeleteSnapshot
csi-snapshotter Kubernetes external-snapshotter
GKE on AWS のノード エージェント
etcd に NIC を接続する
ec2:AttachNetworkInterface(作成、更新)
Secret Manager からプロキシ構成を読み取る secretsmanager:GetSecretValue(作成、更新)
KMS 鍵を操作する kms:Encrypt(作成、更新)
kms:Decrypt(作成、更新)
kms:CreateGrant(作成、更新)

ノードプール ロールの IAM ポリシー

目的 必要な権限 リファレンス
Secret Manager からプロキシ構成を読み取る secretsmanager:GetSecretValue(作成、更新)
ノードプール構成の復号に使用する KMS 鍵 kms:Decrypt(作成、更新) AWS KMS 鍵を作成する