
Eu tenho uma ServiceAccount que tem permissões para fazer todo tipo de coisa em meu projeto GCP e um pipeline Jenkins que é executado todas as noites e desliga um dos meus ambientes GKE.
Há alguns dias, comecei a notar falhas aleatórias na busca de credenciais para o cluster, enquanto a execução do mesmo pipeline funciona novamente.
eu tenho o seguinte bloco de código:
gcloud auth activate-service-account --key-file=****
gcloud container clusters get-credentials integration-cluster --zone europe-west1-c --project integration-project
o problema é que nas noites em que falhou, vejo o seguinte erro:
00:00:45 Activated service account credentials for: [[email protected]]
00:00:46 Fetching cluster endpoint and auth data.
00:00:46 ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/integration-project/zones/europe-west1-c/clusters/integration-cluster".
como o serviceAccount se faltar permissões no projeto, mas nada mudou e a reexecução funciona.
qual pode ser a razão para isso? parece um bug, mas... onde? estou usando agora o Google Cloud SDK 319.0.0.
10x
Responder1
Mensagem de erro message=Required "container.clusters.get" permission(s)
significa que sua conta de serviço não tem container.clusters.get
permissão.
De acordo com a documentaçãoCompreendendo as funçõesseçãoPapéis do Kubernetes Enginefunções roles/container.clusterViewer
e roles/container.clusterAdmin
contêm essa permissão.
Para resolver este problemavocê pode conceder à sua conta de serviço uma função que contenha permissão container.clusters.get
. A função do IAM com menos privilégios que fornece essa permissão é roles/container.clusterViewer
. Para mais detalhes, dê uma olhada na documentaçãoNoções básicas sobre contas de serviçoseçãoConcedendo acesso a contas de serviço.
Se sua conta de serviço tiver todas as permissões necessáriasvocê pode registrar umrelatório de emissãonoRastreador de problemas públicos do Googleou alcançarSuporte do Google Cloud.