このページの表には、デフォルトの 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:*: |
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:*: |
ノードプール インスタンスの自動スケーリング グループ | サービスリンク ロールの作成に必要な権限 | |
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: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 鍵を作成する |