Controle de acesso com o IAM

A API App Optimize usa o Identity and Access Management (IAM) para controlar o acesso aos recursos dela, 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 das 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 Cria um recurso de relatório da App Optimize API.
appoptimize.reports.delete Exclui um recurso de relatório da API App Optimize.
appoptimize.reports.get Lê os metadados de configuração de um recurso de relatório da API App Optimize. Isso não concede acesso aos dados do relatório.
appoptimize.reports.getData Leia os dados contidos em um relatório da API App Optimize.
appoptimize.reports.list Lista os recursos de relatório da App Optimize API em um projeto.

Papéis predefinidos

O IAM oferece papéis predefinidos que concedem um conjunto de permissões relacionadas. Os papéis a seguir estão disponíveis para a API App Optimize e são descritos nas subseções a seguir:

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

Como a App Optimize API está em prévia, essas funções podem não aparecer no console Google Cloud . Para conceder esses papéis, use a Google Cloud CLI. Se ainda não tiver feito isso, instale e inicialize a Google Cloud CLI.

Para conceder o papel de administrador do App Optimize (roles/appoptimize.admin) a um usuário, execute o seguinte comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.admin"

Para conceder o papel de leitor do App Optimize (roles/appoptimize.viewer) a um usuário, execute o seguinte comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.viewer"

Substitua:

  • PROJECT_ID: o ID do Google Cloud projeto que será proprietário do recurso de relatório.
  • USER_EMAIL: o endereço de e-mail do usuário a quem você quer conceder o papel.

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

Concede controle total sobre os recursos da App Optimize API e inclui permissões concedidas ao leitor do App Optimize.

  • Nome da função: roles/appoptimize.admin
  • Permissões incluídas:
    • appoptimize.operations.*
    • appoptimize.reports.*

Leitor do aplicativo Optimize

Concede permissões para ler relatórios, metadados e operações da API App Optimize.

  • Nome da função: roles/appoptimize.viewer
  • Permissões incluídas:
    • 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, geralmente concedida pela função de administrador do App Optimize (roles/appoptimize.admin), no projeto em que o recurso de relatório será criado.

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

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

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

    • Para escopos e dimensões de aplicativos do App Hub, a função de leitor de gerenciamento de apps (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 de vários projetos, precisará 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 precisa apenas da seguinte permissão para ler os dados gerados:

  • appoptimize.reports.getData no projeto em que o relatório foi criado ou no próprio relatório. Essa permissão está incluída no papel roles/appoptimize.viewer.

A seguir