As tabelas nesta página listam todas as permissões usadas para criar os papéis padrão do IAM da AWS. Para criar essas políticas com permissões padrão, consulte Criar papéis do IAM da AWS.
- Papel de agente de serviço da API GKE Multi-Cloud
- A API GKE Multi-Cloud usa esse papel do IAM da AWS para gerenciar recursos usando as APIs da AWS. Esse papel é usado por uma conta de serviço gerenciada pelo Google conhecida como agente de serviço.
- Papel do IAM do AWS no plano de controle
- O plano de controle do cluster usa esse papel para controlar os pools de nós.
- Papel do IAM do AWS do pool de nós
- O plano de controle usa esse papel para criar VMs do pool de nós.
Dependendo dos requisitos da sua organização, é possível criar políticas de IAM personalizadas da AWS para o GKE na AWS para gerenciar os clusters. Essas políticas substituirão as versões padrão. Em seguida, você aplica essas políticas aos papéis do IAM da AWS e as fornece ao criar um cluster.
Para mais informações sobre a finalidade de cada papel, consulte Papéis do IAM da AWS para o GKE na AWS.
Para criar essas políticas, escolha o nível em que você quer restringir os recursos. Por exemplo, é possível restringir uma política a uma VPC específica da AWS usando o nome de recurso da Amazon (ARN, na sigla em inglês) da VPC. Para mais informações, consulte Como controlar o acesso aos 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 | Objetivo | 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 plano de controle | |
| Grupo de segurança | Grupo de segurança do pool de nós | |||
| Regra de 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 de grupo de segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Excluir)ec2:CreateTags (Criar) |
Regra do grupo de segurança de entrada do plano de controle | ||
| Regra de 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 de grupo de segurança | ec2:AuthorizeSecurityGroupIngress (Criar)ec2:RevokeSecurityGroupIngress (Excluir)ec2:CreateTags (Criar) |
Regra do 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 do balanceador de carga Elastic |
| Grupo de destino | 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 de destino para https | Permissões da API do balanceador de carga Elastic |
| Grupo de destino | Grupo de destino para HTTPS para o agente da Konnectivity | |||
| Listener | arn:aws:elasticloadbalancing:*:*:listener/net/gke-* |
elasticloadbalancing:CreateListener (Criar)elasticloadbalancing:DeleteListener (Excluir)
elasticloadbalancing:DescribeListeners (Excluir)elasticloadbalancing:DeleteListener (Excluir) |
Listener para https | |
| Listener | Listener de https para agente konnectivity | |||
| Volume | arn:aws:ec2:*:*:volume/vol-* |
ec2:CreateVolume (Criar)ec2:CreateTags (Criar)ec2:DeleteVolume (Excluir) |
Volumes do etcd | |
| Interface de rede | arn:aws:ec2:*:*:network-interface/eni-* |
ec2:DescribeNetworkInterfacesAtualizarec2:CreateNetworkInterface (Criar)ec2:CreateTags (Criar)ec2:ModifyNetworkInterfaceAttribute (Atualizar)ec2:DeleteNetworkInterface (Excluir) |
NICs do etcd | |
| Abrir modelo | arn:aws:ec2:*:*:launch-template/lt-* |
ec2:CreateLaunchTemplate (Criar, Atualizar)ec2:CreateTags (Criar, Atualizar)ec2:DeleteLaunchTemplate (Excluir) |
Modelo de lançamento para instâncias do plano de controle | |
| Abrir modelo | Modelo de lançamento para instâncias de pool de nós | |||
| Grupo de escalonamento automático | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
autoscaling:DescribeAutoScalingGroups (Criar, Atualizar, Excluir)autoscaling:CreateAutoScalingGroup (Criar)autoscaling:CreateOrUpdateTags (Atualizar)autoscaling:UpdateAutoScalingGroup (Atualizar, Excluir)autoscaling:TerminateInstanceInAutoScalingGroup (Atualizar)autoscaling:DeleteTags Atualizar, (Excluir)autoscaling:DeleteAutoScalingGroup (Excluir)iam:CreateServiceLinkedRole (Criar)ec2:RunInstances (Criar)iam:PassRole (Criar) |
grupos de escalonamento automático para instâncias de plano de controle | Permissões de API necessárias para o escalonamento automático do Amazon EC2 |
| Grupo de escalonamento automático | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
grupos de escalonamento automático para instâncias de pools de nós | Permissões necessárias para criar um papel vinculado 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 na VPC | ||
| VPC | ec2:DescribeVpcs (Criar) |
Informações sobre a VPC da AWS | ||
| Saída do console do EC2 | ec2:GetConsoleOutput (Criar, Atualizar) |
Verificar se há erros nos registros do console | ||
| Chave KMS | For more information on KMS key policies for GKE on AWS
Creating KMS keys with specific permissions
|
Política do IAM para o papel do plano de controle
| Objetivo | Permissão necessária | Referência |
|---|---|---|
| Escalonador 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 |
Criador de snapshot do CSI | Criador de Snapshot do Kubernetes externo |
| Agente de nó do GKE na AWS Anexar NIC ao etcd |
ec2:AttachNetworkInterface (Criar, Atualizar) |
|
| Ler configuração de proxy do Secret Manager | secretsmanager:GetSecretValue (Criar, Atualizar) |
|
| Interagir com chaves KMS | kms:Encrypt (Criar, Atualizar)kms:Decrypt (Criar, Atualizar)kms:CreateGrant (Criar, Atualizar) |
Política do IAM para do papel do pool de nós
| Objetivo | Permissão necessária | Referência |
|---|---|---|
| Ler configuração de proxy do gerenciador de secrets | 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 KMS da AWS |