Neste documento, descrevemos como autenticar-se de maneira programática no Cloud DNS. O modo de autenticação no Cloud DNS depende da interface usada para acessar a API e do ambiente em que o código está em execução.
Para mais informações sobre a autenticação do Trusted Cloud , consulte os métodos de autenticação.
Acesso à API
O Cloud DNS é compatível com o acesso programático. É possível acessar a API das seguintes maneiras:
Bibliotecas de cliente
As bibliotecas de cliente do Cloud DNS oferecem suporte de linguagem de alto nível para a autenticação programática no Cloud DNS. Para autenticar chamadas às APIs do Trusted Cloud by S3NS , as bibliotecas de cliente oferecem suporte ao Application Default Credentials (ADC). As bibliotecas procuram credenciais em um conjunto de locais definidos e as usam para autenticar solicitações à API. Com o ADC, é possível disponibilizar credenciais ao aplicativo em uma variedade de ambientes, como de desenvolvimento ou produção local, sem precisar modificar o código do aplicativo.
CLI do Google Cloud
Ao usar a gcloud CLI para acessar o Cloud DNS, faça login nela com uma conta de usuário, que fornece as credenciais usadas pelos comandos da gcloud CLI.
Se as políticas de segurança da sua organização impedirem que as contas de usuário tenham as permissões necessárias, use a identidade temporária de conta de serviço.
Para mais informações, consulte Autenticar-se para usar a gcloud CLI. Para saber como usar a gcloud CLI com o Cloud DNS, consulte as páginas de referência da CLI do Google Cloud.
REST
É possível autenticar-se na API Cloud DNS usando as credenciais da gcloud CLI ou o Application Default Credentials. Para mais informações sobre a autenticação para solicitações REST, consulte Autenticar-se usando REST. Para informações sobre os tipos de credenciais, consulte Credenciais da gcloud CLI e do ADC.
Configurar a autenticação para Cloud DNS
A configuração da autenticação depende do ambiente em que o código está sendo executado.
As opções de configuração de autenticação a seguir são as mais usadas. Para mais opções e informações sobre a autenticação, consulte Métodos de autenticação.
Para um ambiente de desenvolvimento local
É possível configurar credenciais para um ambiente de desenvolvimento local das seguintes maneiras:
- Credenciais de usuário para bibliotecas de cliente ou ferramentas de terceiros;
- credenciais de usuário para solicitações REST na linha de comando;
- identidade temporária de conta de serviço.
Bibliotecas de cliente ou ferramentas de terceiros
Configure o Application Default Credentials (ADC) no ambiente local:
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Uma tela de login é exibida. Após o login, suas credenciais são armazenadas no arquivo de credenciais local usado pelo ADC.
Para saber como trabalhar com o ADC em um ambiente local, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Solicitações REST usando a linha de comando
Ao fazer uma solicitação REST usando a linha de comando,
use as credenciais da gcloud CLI incluindo
gcloud auth print-access-token
como parte do comando que envia a solicitação.
No exemplo a seguir, listamos as contas de serviço do projeto especificado. É possível usar o mesmo padrão em qualquer solicitação REST.
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto do Trusted Cloud .
Para enviar a solicitação, expanda uma destas opções:
Para saber como autenticar-se usando REST e gRPC, consulte Autenticar-se para usar REST. Para mais informações sobre a diferença entre as credenciais locais do ADC e as credenciais da gcloud CLI, consulte Configuração da autenticação da gcloud CLI e configuração do ADC.
Identidade temporária de conta de serviço
Na maioria dos casos, é possível usar as credenciais de usuário para se autenticar em um ambiente de desenvolvimento
local. Se isso não for viável ou for preciso testar as permissões atribuídas a
uma conta de serviço, use a identidade temporária de conta de serviço. Você precisa ter a
permissão iam.serviceAccounts.getAccessToken
, que é incluída no
papel do IAM de
Criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator
).
Configure a gcloud CLI para usar a identidade temporária de conta de serviço com o
comando gcloud config set
:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Em algumas linguagens, é possível usar a identidade temporária de conta de serviço para criar um arquivo local do ADC
a ser usado pelas bibliotecas de cliente. Essa abordagem só é aceita nas bibliotecas de cliente Go, Java, Node.js e
Python. Não há suporte a ela em outras linguagens.
Para configurar um arquivo local do ADC com a identidade temporária de conta de serviço, use a
flag --impersonate-service-account
com o comando gcloud auth application-default login
:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Para mais informações sobre a identidade temporária de conta de serviço, consulte Usar a identidade temporária de conta de serviço.
No Trusted Cloud by S3NS
Para autenticar uma carga de trabalho em execução no Trusted Cloud, use as credenciais da conta de serviço anexada ao recurso de computação em que o código está sendo executado, como uma instância de máquina virtual (VM) do Compute Engine. Essa abordagem é o método de autenticação preferencial para códigos em execução em um recurso de computação do Trusted Cloud .
Para a maioria dos serviços, você precisa anexar a conta de serviço ao criar o recurso que vai executar o código. Não é possível adicionar ou substituir essa conta de serviço mais tarde. O Compute Engine é uma exceção. Ele permite anexar uma conta de serviço a uma instância de VM a qualquer momento.
Use a gcloud CLI para criar uma conta de serviço e anexá-la ao recurso:
-
Instale a CLI do Google Cloud e faça login na gcloud CLI com sua identidade federada. Depois de fazer login, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service account.PROJECT_ID
: the project ID where you created the service account.POOL_ID
: a workforce identity pool ID.-
SUBJECT_ID
: a subject ID; typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
-
-
Crie o recurso que vai executar o código e anexe a conta de serviço a ele. Por exemplo, se você usar o Compute Engine:
Create a Compute Engine instance. Configure the instance as follows:-
Substitua
INSTANCE_NAME
pelo nome de instância que quiser usar. -
Defina a flag
--zone
com a zona em que a instância será criada. -
Defina a flag
--service-account
com o endereço de e-mail da conta de serviço que você criou.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Substitua
Para mais informações sobre a autenticação nas APIs do Google, consulte Métodos de autenticação.
No local ou em outro provedor de nuvem
O método preferencial para configurar a autenticação de fora do Trusted Cloud é usar a federação de identidade da carga de trabalho. Para mais informações, consulte Configurar o ADC para um ambiente local ou outro provedor de nuvem na documentação de autenticação.
Controle de acesso para Cloud DNS
Depois de se autenticar no Cloud DNS, você precisa ter autorização para acessar os recursos do Trusted Cloud . O Cloud DNS usa o Identity and Access Management (IAM) para a autorização.
Para mais informações sobre os papéis do Cloud DNS, consulte Papéis e permissões. Para mais informações sobre o IAM e a autorização, consulte Visão geral do IAM.
A seguir
- Saiba mais sobre os métodos de autenticação doTrusted Cloud .
- Confira uma lista de casos de uso de autenticação.