As tabelas nesta página listam todas as autorizações usadas na criação das funções de IAM do AWS predefinidas. Para criar estas políticas com autorizações predefinidas, consulte o artigo Crie funções de IAM do AWS.
- Função de agente do serviço da API GKE Multi-Cloud
- A API GKE Multi-Cloud usa esta função de IAM do AWS para gerir recursos através das APIs AWS. Esta função é usada por uma conta de serviço gerida pela Google conhecida como um agente de serviço.
- Função do AWS IAM do plano de controlo
- O plano de controlo do cluster usa esta função para controlar os conjuntos de nós.
- Função de IAM do AWS do node pool
- O plano de controlo usa esta função para criar VMs do node pool.
Consoante os requisitos da sua organização, pode optar por criar políticas de IAM (gestão de identidade e de acesso) da AWS personalizadas para o GKE na AWS para gerir os seus clusters. Estas políticas substituem as versões predefinidas. Em seguida, aplica estas políticas a funções do IAM da AWS e faculta-as quando cria um cluster.
Para mais informações sobre a finalidade de cada função, consulte o artigo Funções do AWS IAM para o GKE no AWS.
Para criar estas políticas, escolha o nível no qual quer restringir os seus recursos. Por exemplo, pode restringir uma política a uma VPC da AWS específica através do nome de recurso da Amazon (ARN) da VPC. Para mais informações, consulte o artigo Controlar o acesso aos recursos da AWS através de políticas.
Políticas IAM para agentes de serviço do GKE Multi-cloud
| Tipo de recurso | ARN | Autorização necessária | Finalidade | Referência |
|---|---|---|---|---|
| Grupo de segurança | arn:aws:ec2:*:*:security-group/sg-* |
ec2:DescribeSecurityGroups (Criar, atualizar, eliminar)ec2:CreateSecurityGroup (Criar)ec2:CreateTags (Criar)ec2:RevokeSecurityGroupEgress (Criar)ec2:DeleteSecurityGroup (Eliminar) |
Grupo de segurança do plano de controlo | |
| Grupo de segurança | Grupo de segurança do node pool | |||
| Regra do grupo de segurança | arn:aws:ec2:*:*:security-group-rule/sgr-* |
ec2:AuthorizeSecurityGroupEgress (Criar)ec2:RevokeSecurityGroupEgress (Eliminar)ec2:CreateTags (Criar) |
Regra do grupo de segurança de saída do plano de controlo | |
| Regra do grupo de segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Eliminar)ec2:CreateTags (Criar) |
Regra do grupo de segurança de entrada do plano de controlo | ||
| Regra do grupo de segurança | ec2:AuthorizeSecurityGroupEgress (Criar)ec2:RevokeSecurityGroupEgress (Eliminar)ec2:CreateTags (Criar) |
Regra do grupo de segurança de saída do plano de controlo | ||
| Regra do grupo de segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Eliminar)ec2:CreateTags (Criar) |
Regra do grupo de segurança de entrada do plano de controlo | ||
| Balanceador de carga de rede | arn:aws:elasticloadbalancing:*:*:loadbalancer/net/gke-* |
elasticloadbalancing:DescribeLoadBalancers (Criar, eliminar) 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 (Eliminar) |
Balanceador de carga do servidor de API do Kubernetes | Autorizações da API Elastic Load Balancing |
| Grupo de destino | arn:aws:elasticloadbalancing:*:*:targetgroup/gke-* |
elasticloadbalancing:DescribeTargetGroups (Criar, atualizar, eliminar)elasticloadbalancing:DescribeTargetHealth (Criar, atualizar)elasticloadbalancing:CreateTargetGroup (Criar)elasticloadbalancing:ModifyTargetGroupAttributes (Criar)ec2:DescribeInternetGateways (Criar)ec2:DescribeVpcs (Criar)elasticloadbalancing:DeleteTargetGroup (Eliminar) |
Grupo de destino para https | Autorizações da API Elastic Load Balancing |
| Grupo de destino | Grupo de destino para https para o agente de conetividade | |||
| Ouvinte | arn:aws:elasticloadbalancing:*:*:listener/net/gke-* |
elasticloadbalancing:CreateListener (Criar)elasticloadbalancing:DeleteListener (Eliminar)
elasticloadbalancing:DescribeListeners (Eliminar)elasticloadbalancing:DeleteListener (Eliminar) |
Ouvinte para https | |
| Ouvinte | Ouvinte de https para o agente de conetividade | |||
| Volume | arn:aws:ec2:*:*:volume/vol-* |
ec2:CreateVolume (Criar)ec2:CreateTags (Criar)ec2:DeleteVolume (Eliminar) |
Volumes etcd | |
| Interface de rede | arn:aws:ec2:*:*:network-interface/eni-* |
ec2:DescribeNetworkInterfaces Atualizarec2:CreateNetworkInterface (Criar)ec2:CreateTags (Criar)ec2:ModifyNetworkInterfaceAttribute (Atualizar)ec2:DeleteNetworkInterface (Eliminar) |
NICs etcd | |
| Modelo de lançamento | arn:aws:ec2:*:*:launch-template/lt-* |
ec2:CreateLaunchTemplate (Criar, atualizar)ec2:CreateTags (Criar, atualizar)ec2:DeleteLaunchTemplate (Eliminar) |
Modelo de lançamento para instâncias do plano de controlo | |
| Modelo de lançamento | Modelo de lançamento para instâncias do conjunto de nós | |||
| Grupo de escala automática | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
autoscaling:DescribeAutoScalingGroups (Criar, atualizar, eliminar)autoscaling:CreateAutoScalingGroup (Criar)autoscaling:CreateOrUpdateTags (Atualizar)autoscaling:UpdateAutoScalingGroup (Atualizar, eliminar)autoscaling:TerminateInstanceInAutoScalingGroup (Atualizar)autoscaling:DeleteTags Atualizar, (eliminar)autoscaling:DeleteAutoScalingGroup (Eliminar)iam:CreateServiceLinkedRole (Criar)ec2:RunInstances (Criar)iam:PassRole (Criar) |
grupos de dimensionamento automático para instâncias do plano de controlo | Autorizações da API necessárias para o Amazon EC2 Auto Scaling |
| Grupo de escala automática | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
Grupos de escala automática para instâncias do node pool | Autorizações necessárias para criar uma função associada ao serviço | |
| Pares de chaves do EC2 | ec2:DescribeKeyPairs (Criar) |
Para garantir que o par de chaves do EC2 usado para iniciar sessão nas máquinas do cluster existe. | ||
| Sub-redes | ec2:DescribeSubnets (Criar) |
Acesso a sub-redes adicionais na sua VPC | ||
| VPC | ec2:DescribeVpcs (Criar) |
Informações sobre a sua VPC da AWS | ||
| Saída da consola EC2 | ec2:GetConsoleOutput (criar, atualizar) |
Verifique se existem erros nos registos da consola | ||
| Chave do KMS | For more information on KMS key policies for GKE on AWS
Creating KMS keys with specific permissions
|
Política IAM para a função do plano de controlo
| Finalidade | Autorização necessária | Referência |
|---|---|---|
| redimensionador automático de clusters | 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:SetDesiredCapacityautoscaling:TerminateInstanceInAutoScalingGroup |
https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md |
| cloud-provider-aws | autoscaling:DescribeAutoScalingGroupsautoscaling:DescribeLaunchConfigurationsautoscaling:DescribeTags (Criar)ec2:DescribeInstances (Criar)ec2:DescribeRegionsec2:DescribeRouteTablesec2:DescribeSecurityGroupsec2:DescribeSubnetsec2:DescribeVolumesec2:CreateSecurityGroupec2:CreateTagsec2:CreateVolumeec2:ModifyInstanceAttributeec2:ModifyVolumeec2:AttachVolume (Criar)ec2:AuthorizeSecurityGroupIngressec2:CreateRouteec2:DeleteRouteec2:DeleteSecurityGroupec2:DeleteVolumeec2:DetachVolumeec2:RevokeSecurityGroupIngressec2:DescribeVpcselasticloadbalancing:AddTagselasticloadbalancing:AttachLoadBalancerToSubnetselasticloadbalancing:ApplySecurityGroupsToLoadBalancerelasticloadbalancing:CreateLoadBalancerelasticloadbalancing:CreateLoadBalancerPolicyelasticloadbalancing:CreateLoadBalancerListenerselasticloadbalancing:ConfigureHealthCheckelasticloadbalancing:DeleteLoadBalancerelasticloadbalancing:DeleteLoadBalancerListenerselasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeLoadBalancerAttributeselasticloadbalancing:DetachLoadBalancerFromSubnetselasticloadbalancing:DeregisterInstancesFromLoadBalancerelasticloadbalancing:ModifyLoadBalancerAttributeselasticloadbalancing:RegisterInstancesWithLoadBalancerelasticloadbalancing:SetLoadBalancerPoliciesForBackendServerelasticloadbalancing:AddTagselasticloadbalancing:CreateListenerelasticloadbalancing:CreateTargetGroupelasticloadbalancing:DeleteListenerelasticloadbalancing:DeleteTargetGroupelasticloadbalancing:DescribeListenerselasticloadbalancing:DescribeLoadBalancerPolicieselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthelasticloadbalancing:ModifyListenerelasticloadbalancing:ModifyTargetGroupelasticloadbalancing:RegisterTargetselasticloadbalancing:DeregisterTargetselasticloadbalancing:SetLoadBalancerPoliciesOfListeneriam:CreateServiceLinkedRolekms:DescribeKey |
https://github.com/kubernetes/cloud-provider-aws/blob/master/docs/prerequisites.md |
| Crie balanceadores de carga | elasticloadbalancing:CreateLoadBalancerec2:DescribeAccountAttributesec2:DescribeInternetGatewaysec2:DescribeSecurityGroupsec2:DescribeSubnetsec2: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:DescribeDhcpOptionsec2:DescribeInstancesec2:DescribeVpcs |
|
elasticloadbalancing:ModifyTargetGroupAttributes |
||
ec2:DescribeSnapshotsec2:CreateSnapshotec2:DeleteSnapshot |
CSI snapshotter | Kubernetes external snapshotter |
| Agente de nó do GKE no AWS Associe a NIC ao etcd |
ec2:AttachNetworkInterface (criar, atualizar) |
|
| Ler a configuração do proxy a partir do Secrets Manager | secretsmanager:GetSecretValue (criar, atualizar) |
|
| Interaja com chaves do KMS | kms:Encrypt (Criar, atualizar)kms:Decrypt (Criar, atualizar)kms:CreateGrant (Criar, atualizar) |
Política IAM para a função do node pool
| Finalidade | Autorização necessária | Referência |
|---|---|---|
| Ler a configuração do proxy a partir do gestor de segredos | secretsmanager:GetSecretValue (criar, atualizar) |
|
| Chave do KMS para desencriptar a encriptação da configuração do node pool | kms:Decrypt (criar, atualizar) |
Crie uma chave do AWS KMS |