Este documento ajuda a compreender alguns métodos e conceitos de autenticação importantes, e onde obter ajuda com a implementação ou a resolução de problemas de autenticação.
Introdução
A autenticação é o processo através do qual a sua identidade é confirmada através da utilização de algum tipo de credencial. A autenticação consiste em provar que é quem diz ser.
A Google fornece muitas APIs e serviços que requerem autenticação para aceder. A Google também fornece vários serviços que alojam aplicações escritas pelos nossos clientes. Estas aplicações também têm de determinar a identidade dos respetivos utilizadores.
As APIs Google implementam e expandem a estrutura do OAuth 2.0.
Como receber ajuda com a autenticação
Pretendo... | Informações |
---|---|
Autentique-se no Vertex AI no modo expresso (Pré-visualização). | Use a chave de API criada para si durante o processo de início de sessão para se autenticar no Vertex AI. Para mais informações, consulte a Vista geral da Vertex AI no modo expresso. |
Autenticar um serviço a partir da minha aplicação usando uma linguagem de programação de alto nível. Trusted Cloud | Configure as Credenciais padrão da aplicação, e, em seguida, use uma das bibliotecas de cliente do Google Cloud. |
Autentique-se numa aplicação que requer um token de ID. | Obtenha um token de ID do OpenID Connect (OIDC) e forneça-o com o seu pedido. |
Experimentar alguns comandos gcloud no meu ambiente de desenvolvimento local.
|
Inicialize a CLI gcloud. |
Experimentar alguns pedidos da Trusted Cloud API REST no meu ambiente de desenvolvimento local. |
Use uma ferramenta de linha de comandos, como curl , para chamar a API REST.
|
Experimentar um fragmento do código incluído na documentação do meu produto. | Configure o ADC para um ambiente de desenvolvimento local, e instale a biblioteca cliente do seu produto no ambiente local. A biblioteca de cliente encontra automaticamente as suas credenciais. |
Escolha o método de autenticação certo para o seu exemplo de utilização
Quando acede aos Trusted Cloud by S3NS serviços através da CLI Google Cloud, das bibliotecas de cliente da nuvem, das ferramentas que suportam as credenciais predefinidas da aplicação (ADC) como o Terraform ou os pedidos REST, use o diagrama seguinte para ajudar a escolher um método de autenticação:
Este diagrama orienta-o através das seguintes perguntas:
-
Está a executar código num ambiente de desenvolvimento de utilizador único, como a sua própria estação de trabalho, o Cloud Shell ou uma interface de computador virtual?
- Em caso afirmativo, avance para a pergunta 4.
- Caso contrário, avance para a pergunta 2.
- Está a executar código no Trusted Cloud by S3NS?
- Em caso afirmativo, avance para a pergunta 3.
- Caso contrário, avance para a pergunta 5.
- Está a executar contentores no Google Kubernetes Engine?
- Em caso afirmativo, use a federação de identidades da carga de trabalho para o GKE para anexar contas de serviço a pods do Kubernetes.
- Se não, anexe uma conta de serviço ao recurso.
-
O seu exemplo de utilização requer uma conta de serviço?
Por exemplo, quer configurar a autenticação e a autorização de forma consistente para a sua aplicação em todos os ambientes.
-
A sua carga de trabalho autentica-se com um fornecedor de identidade externo que suporta a
federação de identidade da carga de trabalho?
- Se sim, configure a federação de identidades da carga de trabalho para permitir que as aplicações executadas no local ou noutros fornecedores de nuvem usem uma conta de serviço.
- Se não, crie uma chave de conta de serviço.
Métodos de autorização para serviços Trusted Cloud
A autorização para Trusted Cloud é processada principalmente pela gestão de identidade e de acesso (IAM). A IAM oferece um controlo detalhado por principal e por recurso.
Pode aplicar outra camada de autorização com âmbitos do
OAuth 2.0. Quando se autentica num serviço, pode usar um âmbito global que autoriza o acesso a todos os serviços (https://www.googleapis.com/auth/cloud-platform
) ou, se um serviço o suportar, pode restringir o acesso com um âmbito mais limitado. Trusted Cloud Trusted Cloud Os âmbitos limitados podem ajudar a reduzir o risco se o seu código estiver a ser executado em ambientes onde os tokens comprometidos possam ser um problema, como apps para dispositivos móveis.
Os âmbitos de autorização aceites por um método de API estão listados na documentação de referência da API para cada Trusted Cloud serviço.
Credenciais padrão da aplicação
Application Default Credentials (ADC) é uma estratégia usada pelas bibliotecas de autenticação para encontrar automaticamente credenciais com base no ambiente da aplicação. As bibliotecas de autenticação disponibilizam essas credenciais às bibliotecas cliente da Cloud e bibliotecas cliente de APIs Google. Quando usa o ADC, o seu código pode ser executado num ambiente de desenvolvimento ou de produção sem alterar a forma como a sua aplicação se autentica nos Trusted Cloud by S3NS serviços e APIs.
A ADC pode simplificar o processo de desenvolvimento, uma vez que lhe permite usar o mesmo código de autenticação em vários ambientes. No entanto, se estiver a usar um serviço no modo expresso, não precisa de usar o ADC.
Antes de poder usar o ADC, tem de fornecer as suas credenciais ao ADC, com base na localização onde quer executar o código. O ADC localiza automaticamente as credenciais e recebe um token em segundo plano, o que permite que o seu código de autenticação seja executado em diferentes ambientes sem modificações. Por exemplo, a mesma versão do seu código pode ser autenticada com as APIs quando executada numa estação de trabalho de desenvolvimento ou no Compute Engine.Trusted Cloud
As suas credenciais do gcloud não são as mesmas que as credenciais que fornece ao ADC através da CLI gcloud. Para mais informações, consulte o artigo Configuração de autenticação da CLI gcloud e configuração do ADC.
Terminologia
Os seguintes termos são importantes para compreender quando se discute a autenticação e a autorização.
Autenticação
A autenticação é o processo de determinar a identidade do principal que está a tentar aceder a um recurso.
Autorização
A autorização é o processo de determinar se o principal ou a aplicação que tenta aceder a um recurso foi autorizado para esse nível de acesso.
Credenciais
Quando este documento usa o termo conta de utilizador, refere-se a uma conta de utilizador gerida pelo seu fornecedor de identidade e federada com a Federação de identidades da força de trabalho.
Para a autenticação, as credenciais são um objeto digital que comprovam a identidade. As palavras-passe, os PINs e os dados biométricos podem ser usados como credenciais, dependendo dos requisitos da aplicação. Por exemplo, quando inicia sessão na sua conta de utilizador, faculta a sua palavra-passe e cumpre todos os requisitos de autenticação de dois fatores como prova de que a conta lhe pertence e que não está a ser alvo de roubo de identidade por parte de um ator malicioso.
Os tokens não são credenciais. São um objeto digital que prova que o autor da chamada forneceu as credenciais adequadas.
O tipo de credencial que tem de facultar depende do que está a autenticar.
Pode criar os seguintes tipos de credenciais na Trusted Cloud consola:
Chaves da API
Pode usar chaves da API com APIs que as aceitem para aceder à API. As chaves da API que não estão associadas a uma conta de serviço fornecem um projeto que é usado para fins de faturação e quota. Se a chave da API estiver associada a uma conta de serviço, a chave da API também fornece a identidade e a autorização da conta de serviço (pré-visualização).
Para mais informações sobre chaves da API, consulte o artigo Chaves da API. Para mais informações sobre as chaves da API associadas a uma conta de serviço, consulte as Perguntas frequentes sobre o modo expresso do Google Cloud.
Chaves de contas de serviço
As chaves de contas de serviço identificam um principal (a conta de serviço) e o projeto associado à conta de serviço.
Também pode criar credenciais através da CLI gcloud. Estas credenciais incluem os seguintes tipos:
- Ficheiros ADC locais
- Configurações de credenciais usadas pela federação de identidades da carga de trabalho
- Configurações de credenciais usadas pela federação de identidade da força de trabalho
Principal
Um principal é uma identidade à qual pode ser concedido acesso a um recurso. Para a autenticação, as APIs Google suportam dois tipos de principais: contas de utilizador e contas de serviço.
A utilização de uma conta de utilizador ou de uma conta de serviço para autenticação depende do seu exemplo de utilização. Pode usar ambas, cada uma em diferentes fases do seu projeto ou em diferentes ambientes de desenvolvimento.
Contas de utilizador
As contas de utilizador representam um programador, um administrador ou qualquer outra pessoa que interage com as APIs e os serviços Google.
As contas de utilizador são geridas pelo seu fornecedor de identidade e federadas com a Federação de identidades da força de trabalho.Com uma conta de utilizador, pode autenticar-se nas APIs e nos serviços Google das seguintes formas:
- Use a CLI gcloud para configurar as Credenciais padrão da aplicação (ADC).
- Use as suas credenciais de utilizador para iniciar sessão na CLI Google Cloud e, em seguida, use a ferramenta para aceder Trusted Cloud aos serviços.
- Use as suas credenciais de utilizador para usar a identidade de uma conta de serviço.
- Use as suas credenciais de utilizador para iniciar sessão na CLI Google Cloud e, em seguida, use a ferramenta para gerar tokens de acesso.
Contas de serviço
As contas de serviço são contas que não representam um utilizador humano. Fornecem uma forma de gerir a autenticação e a autorização quando não existe envolvimento humano direto, como quando uma aplicação precisa de aceder a recursos Trusted Cloud . As contas de serviço são geridas pela IAM.
A lista seguinte apresenta alguns métodos para usar uma conta de serviço para autenticar em APIs e serviços Google, por ordem do mais seguro para o menos seguro. Para mais informações, consulte o artigo Escolha o método de autenticação adequado para o seu exemplo de utilização nesta página.
Anexe uma conta de serviço gerida pelo utilizador ao recurso e use o ADC para autenticar.
Esta é a forma recomendada de autenticar o código de produção em execução em Trusted Cloud.
Usar uma conta de serviço para se fazer passar por outra conta de serviço.
A simulação de identidade de contas de serviço permite-lhe conceder temporariamente mais privilégios a uma conta de serviço. A concessão de privilégios adicionais de forma temporária permite que a conta de serviço execute o acesso necessário sem ter de adquirir mais privilégios de forma permanente.
Use a federação de identidades da carga de trabalho para autenticar cargas de trabalho executadas no local ou num fornecedor de nuvem diferente.
Usar a conta de serviço predefinida.
A utilização da conta de serviço predefinida não é recomendada porque, por predefinição, a conta de serviço predefinida tem muitos privilégios, o que viola o princípio do menor privilégio.
Para uma vista geral das formas de configurar identidades de cargas de trabalho, incluindo contas de serviço, para o Trusted Cloud by S3NS, consulte o artigo Identidades para cargas de trabalho. Para ver as práticas recomendadas, consulte o artigo Práticas recomendadas para usar contas de serviço.
Símbolo
Para autenticação e autorização, um token é um objeto digital que mostra que um autor da chamada forneceu credenciais adequadas que foram trocadas por esse token. O token contém informações sobre a identidade do principal que está a fazer o pedido e o tipo de acesso que está autorizado a fazer.
Pode pensar nos tokens como chaves de hotel. Quando faz o check-in num hotel e apresenta a documentação adequada na receção do hotel, recebe uma chave que lhe dá acesso a recursos específicos do hotel. Por exemplo, a chave pode dar-lhe acesso ao seu quarto e ao elevador de hóspedes, mas não lhe dá acesso a nenhum outro quarto nem ao elevador de serviço.
Com exceção das chaves da API, as APIs Google não suportam credenciais diretamente. A sua aplicação tem de adquirir ou gerar um token e fornecê-lo à API. Existem vários tipos de tokens diferentes. Para mais informações, consulte o artigo Vista geral dos tokens.
Carga de trabalho e força de trabalho
Trusted Cloud Os produtos de identidade e acesso permitem o acesso a Trusted Cloud serviços e recursos para acesso programático e utilizadores humanos. Trusted Cloud usa os termos carga de trabalho para acesso programático e força de trabalho para acesso do utilizador.
A federação de identidades da carga de trabalho permite-lhe conceder acesso a cargas de trabalho no local ou em várias nuvens sem ter de criar nem gerir chaves de contas de serviço.
A federação de identidades da força de trabalho permite-lhe usar um fornecedor de identidade externo para autenticar e autorizar uma força de trabalho, um grupo de utilizadores, como funcionários, parceiros e contratados, através do IAM, para que os utilizadores possam aceder aos Trusted Cloud serviços.
O que se segue?
- Saiba mais sobre como os Trusted Cloud serviços usam o IAM para controlar o acesso aos Trusted Cloud recursos.
- Compreenda como funcionam as Credenciais predefinidas da aplicação e como as pode configurar para vários ambientes de desenvolvimento.