As tabelas nesta página listam todas as permissões usadas na criação das funções padrão do AWS IAM. Para criar essas políticas com permissões padrão, consulte Criar funções do AWS IAM .
- Função de agente de serviço da API Multi-Cloud do GKE
- A API Multi-Cloud do GKE usa esta função do AWS IAM para gerenciar recursos usando APIs da AWS. Essa função é usada por uma conta de serviço gerenciada pelo Google, conhecida como agente de serviço .
- Função AWS IAM do plano de controle
- O plano de controle do cluster usa essa função para controlar pools de nós.
- Função AWS IAM do pool de nós
- O plano de controle usa essa função para criar VMs de pool de nós.
Dependendo dos requisitos da sua organização, você pode optar por criar políticas personalizadas do AWS IAM para o GKE na AWS para gerenciar seus clusters. Essas políticas substituirão as versões padrão. Em seguida, você as aplica às funções do AWS IAM e as fornece ao criar um cluster.
Para obter mais informações sobre a finalidade de cada função, consulte Funções do AWS IAM para o GKE na AWS .
Para criar essas políticas, escolha o nível em que deseja restringir seus recursos. Por exemplo, você pode restringir uma política a uma VPC específica da AWS usando o Nome de Recurso da Amazon (ARN) da VPC. Para obter mais informações, consulte Controlando o acesso a recursos da AWS usando políticas .
Políticas do IAM para agentes de serviço do GKE Multi-Cloud
Tipo de recurso | ARN | Permissão necessária | Propósito | Referência |
---|---|---|---|---|
Grupo de Segurança | arn:aws:ec2:*:*:security-group/sg-* | ec2:DescribeSecurityGroups (Criar, Atualizar, Excluir)ec2:CreateSecurityGroup (Criar)ec2:CreateTags (Criar)ec2:RevokeSecurityGroupEgress (Criar)ec2:DeleteSecurityGroup (Excluir) | Grupo de segurança do avião de controle | |
Grupo de Segurança | Grupo de segurança do pool de nós | |||
Regra do Grupo de Segurança | arn:aws:ec2:*:*:security-group-rule/sgr-* | ec2:AuthorizeSecurityGroupEgress (Criar)ec2:RevokeSecurityGroupEgress (Excluir)ec2:CreateTags (Criar) | Regra do grupo de segurança de saída do plano de controle | |
Regra do Grupo de Segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Excluir)ec2:CreateTags (Criar) | Regra de grupo de segurança de entrada do plano de controle | ||
Regra do Grupo de Segurança | ec2:AuthorizeSecurityGroupEgress (Criar)ec2:RevokeSecurityGroupEgress (Excluir)ec2:CreateTags (Criar) | Regra do grupo de segurança de saída do plano de controle | ||
Regra do Grupo de Segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Excluir)ec2:CreateTags (Criar) | Regra de grupo de segurança de entrada do plano de controle | ||
Balanceador de carga de rede | arn:aws:elasticloadbalancing:*:*:loadbalancer/net/gke-* | elasticloadbalancing:DescribeLoadBalancers (Criar, Excluir)elasticloadbalancing:CreateLoadBalancer (Criar)ec2:CreateSecurityGroup (Criar)ec2:DescribeAccountAttributes (Criar)ec2:DescribeInternetGateways (Criar)ec2:DescribeSecurityGroups (Criar)ec2:DescribeSubnets (Criar)ec2:DescribeVpcs (Criar)iam:CreateServiceLinkedRole (Criar)elasticloadbalancing:DeleteLoadBalancer (Excluir) | Balanceador de carga do servidor de API do Kubernetes | Permissões da API de balanceamento de carga elástica |
Grupo-alvo | arn:aws:elasticloadbalancing:*:*:targetgroup/gke-* | elasticloadbalancing:DescribeTargetGroups (Criar, Atualizar, Excluir)elasticloadbalancing:DescribeTargetHealth (Criar, Atualizar)elasticloadbalancing:CreateTargetGroup (Criar)elasticloadbalancing:ModifyTargetGroupAttributes (Criar)ec2:DescribeInternetGateways (Criar)ec2:DescribeVpcs (Criar)elasticloadbalancing:DeleteTargetGroup (Excluir) | Grupo-alvo para https | Permissões da API de balanceamento de carga elástica |
Grupo-alvo | Grupo-alvo para https para agente de conectividade | |||
Ouvinte | arn:aws:elasticloadbalancing:*:*:listener/net/gke-* | elasticloadbalancing:CreateListener (Criar)elasticloadbalancing:DeleteListener (Excluir) elasticloadbalancing:DescribeListeners (Excluir)elasticloadbalancing:DeleteListener (Excluir) | Ouvinte para https | |
Ouvinte | Ouvinte para https para agente de conectividade | |||
Volume | arn:aws:ec2:*:*:volume/vol-* | ec2:CreateVolume (Criar)ec2:CreateTags (Criar)ec2:DeleteVolume (Excluir) | volumes etcd | |
Interface de rede | arn:aws:ec2:*:*:network-interface/eni-* | ec2:DescribeNetworkInterfaces ec2:CreateNetworkInterface (Criar)ec2:CreateTags (Criar)ec2:ModifyNetworkInterfaceAttribute (Atualização)ec2:DeleteNetworkInterface (Excluir) | NICs etcd | |
Modelo de lançamento | arn:aws:ec2:*:*:launch-template/lt-* | ec2:CreateLaunchTemplate (Criar, Atualizar)ec2:CreateTags (Criar, Atualizar)ec2:DeleteLaunchTemplate (Excluir) | Modelo de inicialização para instâncias do plano de controle | |
Modelo de lançamento | Modelo de inicialização para instâncias de pool de nós | |||
Grupo de dimensionamento automático | arn:aws:autoscaling:*:*:autoScalingGroup:*: autoScalingGroupName/gke-* | autoscaling:DescribeAutoScalingGroups (Criar, Atualizar, Excluir)autoscaling:CreateAutoScalingGroup (Criar)autoscaling:CreateOrUpdateTags (Atualização)autoscaling:UpdateAutoScalingGroup (Atualizar, Excluir)autoscaling:TerminateInstanceInAutoScalingGroup (atualização)autoscaling:DeleteTags , (Excluir)autoscaling:DeleteAutoScalingGroup (Excluir)iam:CreateServiceLinkedRole (Criar)ec2:RunInstances (Criar)iam:PassRole (Criar) | grupos de dimensionamento automático para instâncias do plano de controle | Permissões de API necessárias para o dimensionamento automático do Amazon EC2 |
Grupo de dimensionamento automático | arn:aws:autoscaling:*:*:autoScalingGroup:*: autoScalingGroupName/gke-* | grupos de dimensionamento automático para instâncias de pool de nós | Permissões necessárias para criar uma função vinculada ao serviço | |
Pares de chaves EC2 | ec2:DescribeKeyPairs (Criar) | Para garantir que o par de chaves EC2 usado para fazer login nas máquinas do cluster exista. | ||
Sub-redes | ec2:DescribeSubnets (Criar) | Acesso a sub-redes adicionais em sua VPC | ||
VPC | ec2:DescribeVpcs (Criar) | Informações sobre sua VPC AWS | ||
Saída do console EC2 | ec2:GetConsoleOutput (Criar, Atualizar) | Verifique os logs do console em busca de erros | ||
Chave KMS | For more information on KMS key policies for GKE on AWS Creating KMS keys with specific permissions |
Política de IAM para função de plano de controle
Propósito | Permissão necessária | Referência |
---|---|---|
autoescalador de cluster | autoscaling:DescribeAutoScalingGroups (Criar, Atualizar)autoscaling:DescribeAutoScalingInstances (Criar, Atualizar)autoscaling:DescribeLaunchConfigurations (Criar, Atualizar)autoscaling:DescribeTags (Criar, Atualizar)ec2:DescribeInstanceTypes (Criar, Atualizar)ec2:DescribeLaunchTemplateVersions (Criar, Atualizar)autoscaling:SetDesiredCapacity autoscaling:TerminateInstanceInAutoScalingGroup | https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md |
provedor de nuvem aws | autoscaling:DescribeAutoScalingGroups autoscaling:DescribeLaunchConfigurations autoscaling:DescribeTags (Criar)ec2:DescribeInstances (Criar)ec2:DescribeRegions ec2:DescribeRouteTables ec2:DescribeSecurityGroups ec2:DescribeSubnets ec2:DescribeVolumes ec2:CreateSecurityGroup ec2:CreateTags ec2:CreateVolume ec2:ModifyInstanceAttribute ec2:ModifyVolume ec2:AttachVolume (Criar)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 |
Criar balanceadores de carga | elasticloadbalancing:CreateLoadBalancer ec2:DescribeAccountAttributes ec2:DescribeInternetGateways ec2:DescribeSecurityGroups ec2:DescribeSubnets ec2:DescribeVpcs | https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html |
driver aws-ebs-csi | 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 | Snapshotter CSI | Snapshotter externo do Kubernetes |
Agente de nó do GKE na AWS Anexar NIC ao etcd | ec2:AttachNetworkInterface (Criar, Atualizar) | |
Ler a configuração do proxy do Secrets Manager | secretsmanager:GetSecretValue (Criar, Atualizar) | |
Interaja com chaves KMS | kms:Encrypt (Criar, Atualizar)kms:Decrypt (Criar, Atualizar)kms:CreateGrant (Criar, Atualizar) |
Política do IAM para função de pool de nós
Propósito | Permissão necessária | Referência |
---|---|---|
Ler a configuração do proxy do gerenciador de segredos | secretsmanager:GetSecretValue (Criar, Atualizar) | |
Chave KMS para descriptografar a criptografia da configuração do pool de nós | kms:Decrypt (Criar, Atualizar) | Criar uma chave AWS KMS |