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 Crie um recurso de relatório da API App Optimize.
appoptimize.reports.delete Exclui um recurso de relatório da API App Optimize.
appoptimize.reports.get Leia 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 Ler 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 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 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 App Optimize API.

Conceder um papel do IAM

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

Console

  1. No console do Google Cloud , 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 as funções do App Optimize e selecione a função a ser concedida, como Administrador do App Optimize ou Leitor do App Optimize.

  6. Clique em Salvar.

gcloud

  1. Se ainda não tiver feito isso, instale e inicialize a Google Cloud CLI.

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

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

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud .
    • PRINCIPAL: o identificador do principal, como user:my-user@example.com ou group:my-group@example.com. Consulte Identificadores de 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 App 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 administrador do App Optimize concede controle total sobre os recursos da App Optimize API e inclui as permissões concedidas ao leitor do App Optimize.

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

Leitor do aplicativo Optimize

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

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 App 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 Leitor da conta de faturamento (roles/billing.viewer) ou o básico Leitor (roles/viewer).

  • 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 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 do 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 administrador precisa apenas 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. Ela está incluída nas funções de administrador e leitor do App Optimize.

A seguir