Como configurar permissões

Neste tópico, mostramos como configurar as permissões necessárias para chamar a API Cloud Asset Inventory.

Como realizar a autenticação

Antes de chamar a API Cloud Asset Inventory, você precisa fazer a autenticação como usuário final ou como conta de serviço. Para mais informações sobre autenticação, consulte Visão geral da autenticação.

Como conceder as permissões necessárias para a ferramenta gcloud

Para usar a ferramenta gcloud para acessar a API Cloud Asset Inventory, é preciso conceder as permissões necessárias no pai do recurso de destino, que pode ser uma organização, um projeto ou uma pasta. Especifique esse pai no campo parent das suas solicitações da API.

Se sua conta tiver o papel Proprietário do Cloud Asset (roles/cloudasset.owner) ou o papel básico de Proprietário (roles/owner) no pai do recurso, ela terá permissões suficientes para chamar a API Cloud Asset Inventory e você poderá passar para Como fazer o download de credenciais. Para mais informações sobre os papéis do Inventário de recursos do Cloud, consulte Papéis.

Como conceder papéis

Para conceder um papel a uma conta, conclua as etapas a seguir com a ferramenta de linha de comando gcloud. Saiba como instalar e inicializar a ferramenta gcloud.

Conta de usuário

Para conceder os papéis necessários a uma conta de usuário, siga estas etapas:

  1. Para fazer login com sua conta de usuário, execute o seguinte comando.

    gcloud auth login USER_ACCOUNT_EMAIL
    
  2. Conceda à sua conta de usuário o papel Visualizador de recursos do Cloud (roles/cloudasset.viewer) ou o papel Proprietário do recurso do Cloud (roles/cloudasset.owner) no recurso raiz (pai). Este pode ser o projeto em que a API Cloud Asset Inventory está ativada.

    Para conceder o papel de visualizador de recursos do Cloud à conta de usuário, execute o comando a seguir.

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
         --member user:USER_ACCOUNT_EMAIL \
         --role roles/cloudasset.viewer
    

    É possível adicionar a sinalização --billing-project ao comando gcloud asset para especificar o projeto de faturamento em que a API Cloud Asset Inventory está ativada.

    --billing-project PROJECT_ID
    

    Se você especificar essa sinalização, sua conta precisará da permissão serviceusage.services.use no projeto PROJECT_ID. Consulte Noções básicas sobre papéis para ver uma lista de papéis predefinidos que incluem esse permissão.

Conta de serviço

Para conceder os papéis necessários a uma conta de serviço, conclua as etapas a seguir. Para mais informações sobre contas de serviço, consulte Como criar e gerenciar contas de serviço.

  1. Para criar uma nova conta de serviço, execute o seguinte comando. Se você já tiver uma conta de serviço em um projeto em que a API Cloud Asset Inventory estiver ativada, pule esta etapa.

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
           --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
    
  2. Conceda à sua conta de serviço o papel de visualizador de recursos do Cloud (roles/cloudasset.viewer) ou o papel Proprietário do recurso do Cloud (roles/cloudasset.owner) no recurso raiz (pai). Esse projeto pode ser o mesmo em que a API Cloud Asset Inventory está ativada.

    Para conceder o papel de visualizador de recursos do Cloud à conta de serviço, execute o seguinte comando.

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
            --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --role roles/cloudasset.viewer
    
  3. Para criar uma chave privada para a conta de serviço, execute o seguinte comando.

    gcloud iam service-accounts keys create YOUR_FILE_PATH/key.json \
            --iam-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  4. Para ativar a conta de serviço para uso com a ferramenta gcloud, execute o comando a seguir.

    gcloud auth activate-service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --key-file=YOUR_FILE_PATH/key.json
    

Como fazer o download de credenciais JSON

Para acessar a API Cloud Asset Inventory sem a ferramenta gcloud, você precisa de um arquivo de credenciais JSON. Para fazer o download do arquivo, siga as etapas abaixo.

  1. Acesse a página Credenciais no Console do Cloud.

    Acesse a página "Credenciais"

  2. Selecione + Criar credenciais e, em seguida, selecione ID do cliente OAuth.

  3. Se você estiver criando um ID do cliente para um novo projeto, configure primeiro a tela de permissão OAuth. O Console do Cloud vai exibir a tela de permissão sempre que um aplicativo que usa o seu ID do cliente solicitar acesso a dados particulares.

    Para configurar a tela de consentimento, siga estas etapas:

    1. Selecione Configurar tela de consentimento e insira as informações necessárias.

    2. Salve as alterações.

  4. Na página Criar ID do cliente em Tipo de aplicativo, selecione o tipo apropriado. Para mais informações sobre tipos de clientes, consulte Como configurar o OAuth 2.0.

  5. Insira um nome para a credencial e clique em Criar.

  6. Clique em OK para dispensar a caixa de diálogo exibida. Não é necessário o ID do cliente e os valores do secret para se autenticar com a API Cloud Asset Inventory. Além disso, ambos os valores podem ser recuperados com o arquivo JSON de credenciais.

  7. Para salvar o novo arquivo JSON do ID do cliente, clique em .

  8. Você pode renomear e mover o arquivo JSON transferido por download para um caminho conveniente para você. Nos exemplos a seguir, vamos usar o caminho ~/credentials.json.

Como verificar a configuração das credenciais

Para verificar se você configurou as suas credenciais corretamente, execute o seguinte comando:

   oauth2l header --json ~/credentials.json cloud-platform
   

O resultado será semelhante a este:

Authorization: Bearer y29.xxxxxxx

Como definir um alias do shell

Pode ser conveniente definir um alias de shell para chamar as APIs REST do Google Cloud.

Para definir um alias gcurl para chamar APIs REST do Google Cloud, execute o seguinte comando:

   alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json \
     cloud-platform)" -H "Content-Type: application/json" '