Controle de acesso com o IAM

A App Optimize API usa o Identity and Access Management (IAM) para controlar o acesso aos recursos, como relatórios e operações. O IAM permite conceder acesso granular a recursos específicos da API App Optimize e ajuda a impedir o acesso indesejado a outros recursos.

Este documento descreve as permissões e os papéis do IAM que se aplicam à API App Optimize.

Visão geral de permissões

Com elas, os usuários podem realizar ações específicas nos recursos da API App Optimize. A tabela a seguir lista as permissões da API App Optimize:

Permissão Descrição
appoptimize.operations.cancel Cancelar uma operação de longa duração.
appoptimize.operations.delete Excluir uma operação de longa duração.
appoptimize.operations.get Receber o status de uma operação de longa duração.
appoptimize.operations.list Listar operações de longa duração.
appoptimize.reports.create Criar um recurso de relatório da App Optimize API.
appoptimize.reports.delete Excluir um recurso de relatório da API App Optimize.
appoptimize.reports.get Ler os metadados de configuração de um recurso de relatório da App Optimize API.
Isso não concede acesso aos dados do relatório.
appoptimize.reports.getData Ler os dados contidos em um relatório da API App Optimize.
appoptimize.reports.list Listar recursos de relatório da App Optimize API em um projeto.

Papéis predefinidos

O IAM fornece papéis predefinidos que concedem um conjunto de permissões relacionadas. Os seguintes papéis estão disponíveis para a App Optimize API:

Papel Nome Descrição
roles/appoptimize.admin Administrador do aplicativo Optimize Controle total sobre os relatórios e operações da API App Optimize.
roles/appoptimize.viewer Leitor do aplicativo Optimize Acesso de leitura aos metadados, dados de relatórios e operações da App Optimize API.

Conceder um papel do IAM

É possível conceder um papel do IAM a um principal usando o Google Cloud console ou a Google Cloud CLI.

Console

  1. No Google Cloud console, acesse a página IAM.

    Acessar IAM

  2. Clique em Conceder acesso.

  3. No campo Novos principais, insira o endereço de e-mail do principal a quem o papel será concedido.

  4. Clique no menu suspenso Selecionar um papel.

  5. Filtre os papéis do App Optimize e selecione o papel a ser concedido, como Administrador do App Optimize ou Leitor do App Optimize.

  6. Clique em Salvar.

gcloud

  1. Instale e inicialize a CLI do Google Cloud, caso ainda não tenha feito isso, install and initialize the Google Cloud CLI.

  2. Use o gcloud projects add-iam-policy-binding comando para conceder o papel:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="PRINCIPAL" \
        --role="ROLE_NAME"
    

    Substitua:

    • PROJECT_ID: o ID do Google Cloud projeto.
    • PRINCIPAL: o identificador do principal, como user:my-user@example.com ou group:my-group@example.com. Consulte Identificadores principais.
    • ROLE_NAME: o papel a ser concedido, como roles/appoptimize.admin ou roles/appoptimize.viewer.

Por exemplo, para conceder o papel de Administrador do aplicativo Optimize ao usuário test-user@example.com no projeto my-appoptimize-project:

gcloud projects add-iam-policy-binding my-appoptimize-project \
    --member="user:test-user@example.com" \
    --role="roles/appoptimize.admin"

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Administrador do aplicativo Optimize

O papel de Administrador do aplicativo Optimize concede controle total sobre os recursos da App Optimize API e inclui permissões concedidas ao Leitor do aplicativo Optimize.

Nome do papel Permissões incluídas
roles/appoptimize.admin
  • appoptimize.operations.*
  • appoptimize.reports.*

Leitor do aplicativo Optimize

O papel de Leitor do App Optimize concede permissões para ler relatórios, metadados e operações da App Optimize API.

Nome do papel Permissões incluídas
roles/appoptimize.viewer
  • appoptimize.operations.get
  • appoptimize.operations.list
  • appoptimize.reports.get
  • appoptimize.reports.getData
  • appoptimize.reports.list

Permissões para criar relatórios

Para criar um relatório, um usuário, uma conta de serviço ou outro principal precisa ter:

  • A permissão appoptimize.reports.create no projeto em que o recurso de relatório será criado. Essa permissão está incluída no papel de Administrador do aplicativo Optimize (roles/appoptimize.admin).

  • A permissão billing.resourceCosts.get em todos os projetos no escopo do relatório. Essa permissão é fornecida por papéis como o de Leitor da conta de faturamento (roles/billing.viewer) ou o de Leitor básico (roles/viewer).

  • Permissões para acessar as fontes de dados abrangidas pelo escopo, dimensões e métricas do relatório. A API App Optimize verifica essas permissões quando o relatório é criado. Os papéis que concedem esse acesso à fonte de dados incluem:

    • Para métricas de utilização de CPU e memória: Leitor do Monitoring (roles/monitoring.viewer) nos recursos no escopo.

    • Para escopos e dimensões de aplicativos do App Hub: Leitor de gerenciamento de aplicativos (roles/apphub.appManagementViewer) no projeto host do App Hub dos aplicativos.

    Se você estiver gerando um relatório em um aplicativo do App Hub, que pode ser composto por vários projetos, será necessário ter as permissões de monitoramento e faturamento necessárias em todos os projetos associados do aplicativo para criar o relatório.

Permissões para ler dados de relatórios

Depois que um relatório é criado, um principal só precisa da permissão appoptimize.reports.getData para ler os dados gerados. Essa permissão pode estar no projeto em que o relatório foi criado ou no próprio relatório e está incluída nos papéis de Administrador do aplicativo Optimize e Leitor do aplicativo Optimize.

A seguir