Métodos de autenticação para Trusted Cloud by S3NS

Neste documento, você verá alguns conceitos importantes de métodos de autenticação e onde conseguir ajuda para implementar ou resolver problemas de autenticação.

Introdução

A autenticação é o processo de confirmação da identidade por meio de algum tipo de credencial. A autenticação consiste em provar que você é quem diz ser.

O Google fornece muitas APIs e serviços, que exigem autenticação para acesso. O Google também fornece vários serviços que hospedam aplicativos escritos pelos nossos clientes. também precisam determinar a identidade dos usuários.

As APIs do Google implementam e ampliam o framework do OAuth 2.0.

O que você quer fazer? Informações
Autenticar na Vertex AI no modo rápido (pré-lançamento). Use a chave de API criada para você durante o processo de login para autenticar na Vertex AI. Para mais informações, consulte Visão geral do modo rápido da Vertex AI.
Autenticar para um serviço Trusted Cloud no meu aplicativo usando uma linguagem de programação de alto nível. Configure o Application Default Credentials e use uma das bibliotecas de cliente do Cloud.
Autentique-se em um app que exija um token de ID. Receba um token de ID do OpenID Connect (OIDC) e forneça-o com sua solicitação.
Teste alguns comandos gcloud no meu ambiente de desenvolvimento local. Inicialize a CLI gcloud.
Teste algumas solicitações da API REST Trusted Cloud no meu ambiente de desenvolvimento local. Use uma ferramenta de linha de comando, como curl, para chamar a API REST.
Teste um snippet de código incluído na documentação do produto. Configure o ADC para um ambiente de desenvolvimento local e instale a biblioteca de cliente do produto no ambiente local. A biblioteca de cliente encontra suas credenciais automaticamente.

Escolha o método de autenticação certo para seu caso de uso

Quando você acessa os serviços do Trusted Cloud by S3NS usando a Google Cloud CLI, as bibliotecas de cliente do Cloud, ferramentas compatíveis com Application Default Credentials (ADC) como o Terraform ou solicitações REST, use o diagrama a seguir para escolher um método de autenticação:

Árvore de decisão para escolher o método de autenticação com base no caso de uso

Este diagrama orienta você nas seguintes perguntas:

  1. Você está executando o código em um ambiente de desenvolvimento de usuário único, como sua própria estação de trabalho, o Cloud Shell ou uma interface de área de trabalho virtual?
    1. Se sim, prossiga para a pergunta 4.
    2. Caso contrário, prossiga para a pergunta 2.
  2. Você está executando o código em Trusted Cloud by S3NS?
    1. Se sim, prossiga para a pergunta 3.
    2. Caso contrário, prossiga para a pergunta 5.
  3. Você está executando contêineres no Google Kubernetes Engine?
    1. Em caso afirmativo, use a federação de identidade da carga de trabalho para GKE para anexar contas de serviço aos pods do Kubernetes.
    2. Caso contrário, anexe uma conta de serviço ao recurso.
  4. Seu caso de uso requer uma conta de serviço?

    Por exemplo, você quer configurar a autenticação e a autorização de maneira consistente para seu aplicativo em todos os ambientes.

    1. Caso contrário, faça a autenticação com credenciais de usuário.
    2. Se for o caso, represente uma conta de serviço com credenciais de usuário.
  5. Sua carga de trabalho é autenticada com um provedor de identidade externo compatível com a federação de identidade da carga de trabalho?
    1. Em caso afirmativo, configure a federação de identidade da carga de trabalho para permitir que os aplicativos em execução no local ou em outros provedores de nuvem usem uma conta de serviço.
    2. Caso contrário, crie uma chave da conta de serviço.

Métodos de autorização para serviços Trusted Cloud

A autorização para Trusted Cloud é processada principalmente pelo Identity and Access Management (IAM). O IAM oferece controle granular por principal e por recurso.

Você pode aplicar outra camada de autorização com escopos do OAuth 2.0. Ao autenticar em um serviço Trusted Cloud , você pode usar um escopo global que autoriza o acesso a todos os serviços Trusted Cloud (https://www.googleapis.com/auth/cloud-platform) ou, se um serviço oferecer suporte a isso, você pode restringir o acesso com um escopo mais limitado. Os escopos limitados podem ajudar a reduzir o risco se o código estiver sendo executado em ambientes em que tokens comprometidos podem ser uma preocupação, como apps para dispositivos móveis.

Os escopos de autorização aceitos por um método de API estão listados na documentação de referência da API para cada serviço Trusted Cloud .

Application Default Credentials

Application Default Credentials (ADC) é uma estratégia usada pelas bibliotecas de autenticação do Google para encontrar credenciais automaticamente com base no ambiente do aplicativo. As bibliotecas de autenticação disponibilizam essas credenciais para as bibliotecas de cliente do Cloud e as bibliotecas de cliente da API do Google. Ao usar o ADC, o código pode ser executado em um ambiente de desenvolvimento ou produção sem mudar a forma como o aplicativo é autenticado nos serviços e nas APIs do Trusted Cloud by S3NS .

O ADC pode simplificar seu processo de desenvolvimento, porque permite que você use o mesmo código de autenticação em diversos ambientes. No entanto, se você estiver usando um serviço no modo express, não será necessário usar o ADC.

Antes de usar o ADC, forneça suas credenciais para o ADC com base no local em que você quer que o código seja executado. O ADC localiza automaticamente as credenciais e recebe um token em segundo plano, o que permite que o código de autenticação seja executado em diferentes ambientes sem modificação. Por exemplo, a mesma versão do seu código pode ser autenticada com APIs doTrusted Cloud quando executada em uma estação de trabalho de desenvolvimento ou no Compute Engine.

As credenciais da gcloud não são iguais às fornecidas ao ADC pela CLI gcloud. Para mais informações, consulte Configuração de autenticação da gcloud CLI e configuração do ADC.

Terminologia

É importante entender os termos a seguir ao falar sobre autenticação e autorização.

Autenticação

A autenticação é o processo de determinar a identidade do principal que está tentando acessar um recurso.

Autorização

A autorização é o processo para determinar se o principal ou o aplicativo que está tentando acessar um recurso foi autorizado para esse nível de acesso.

Credenciais

Quando este documento usa o termo conta de usuário, isso se refere a uma conta de usuário gerenciada pelo seu provedor de identidade e federada com a federação de identidade de colaboradores.

Para autenticação, as credenciais são um objeto digital que oferece prova de identidade. Senhas, PINs e dados biométricos podem ser usados como credenciais, dependendo dos requisitos do aplicativo. Por exemplo, ao fazer login na sua conta de usuário, você informa a senha e cumpre todos os requisitos de autenticação de dois fatores como prova de que a conta realmente pertence a você e que você não está sendo falsificado por um usuário de má-fé.

Tokens não são credenciais. Eles são um objeto digital que prova que o autor da chamada forneceu as credenciais adequadas.

O tipo de credencial que você precisa fornecer depende do que você está autenticando.

Os seguintes tipos de credenciais podem ser criados no console doTrusted Cloud :

Também é possível criar credenciais usando a CLI gcloud. Confira alguns tipos de credenciais:

Principal

Um principal é uma identidade que pode receber acesso a um recurso. Para autenticação, as APIs do Google oferecem suporte a dois tipos de principais: contas de usuário e contas de serviço.

O uso de uma conta de usuário ou uma conta de serviço para autenticação depende do seu caso de uso. Você pode usar ambos, cada um em diferentes estágios do seu projeto ou em diferentes ambientes de desenvolvimento.

Contas de usuário

As contas de usuário representam um desenvolvedor, administrador ou qualquer outra pessoa que interaja com as APIs e serviços do Google.

As contas de usuário são gerenciadas pelo provedor de identidade e federadas com a federação de identidade de colaboradores.

Com uma conta de usuário, você pode se autenticar nas APIs e serviços do Google das seguintes maneiras:

Contas de serviço

Contas de serviço são contas que não representam um usuário humano. Eles oferecem uma maneira de gerenciar a autenticação e a autorização quando uma pessoa não está envolvida diretamente, como quando um aplicativo precisa acessar recursos do Trusted Cloud . As contas de serviço são gerenciadas pelo IAM.

A lista a seguir fornece alguns métodos para usar uma conta de serviço para a autenticação nas APIs e serviços do Google, da mais segura para a menos segura. Para mais informações, consulte Escolher o método de autenticação certo para seu caso de uso nesta página.

Para uma visão geral das maneiras de configurar identidades de carga de trabalho, incluindo contas de serviço, para Trusted Cloud by S3NS, consulte Identidades para cargas de trabalho. Para mais informações, consulte Práticas recomendadas para o uso de contas de serviço.

Token

Para autenticação e autorização, um token é um objeto digital que mostra que um autor de chamada forneceu as credenciais adequadas que foram trocadas por esse token. O token contém informações sobre a identidade do principal que está fazendo a solicitação e o tipo de acesso que ele está autorizado a fazer.

Os tokens podem ser considerados chaves de hotel. Quando você faz check-in em um hotel e apresenta a documentação adequada no balcão de registro de hotéis, recebe uma chave que concede acesso a recursos específicos de hotéis. Por exemplo, a chave pode conceder acesso ao seu quarto e ao elevador convidado, mas não fornece acesso a qualquer outro quarto ou elevador de serviço.

Com exceção das chaves de API, as APIs do Google não oferecem suporte direto a credenciais. Seu aplicativo precisa adquirir ou gerar um token e fornecê-lo à API. Há vários tipos diferentes de tokens. Para mais informações, consulte Tipos de token.

Carga de trabalho e força de trabalho

Os produtos de identidade e acesso doTrusted Cloud permitem o acesso aos serviços e recursos doTrusted Cloud para acesso programático e usuários humanos.O Trusted Cloud usa os termos carga de trabalho para acesso programático e força de trabalho para acesso do usuário.

A federação de identidade da carga de trabalho permite que você forneça acesso a cargas de trabalho no local ou em ambientes multicloud, sem precisar criar e gerenciar chaves de conta de serviço.

A federação de identidade de colaboradores permite que você use um provedor de identidade externo para autenticar e autorizar colaboradores, ou seja, um grupo de usuários como funcionários, parceiros e prestadores de serviços, usando o IAM para que eles possam acessar osTrusted Cloud serviços.

A seguir