Revisar e aplicar recomendações de papéis para projetos, pastas e organizações

Nesta página, explicamos como visualizar, entender e aplicar recomendações de papéis para projetos, pastas e organizações. As recomendações de papéis ajudam a aplicar o princípio de privilégio mínimo, garantindo que os principais tenham apenas as permissões de que realmente precisam.

Antes de começar

Papéis do IAM obrigatórios

Esta seção descreve os papéis e as permissões do IAM necessários para trabalhar com recomendações de papéis.

Mostrar recomendações

Para receber as permissões necessárias para visualizar as recomendações de papel, peça ao administrador que conceda a você os seguintes papéis do IAM no recurso para o qual você quer visualizar as recomendações (projeto, pasta ou organização):

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos têm as permissões necessárias para visualizar as recomendações. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para visualizar as recomendações de papéis:

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • Para visualizar recomendações no console do Google Cloud: resourcemanager.RESOURCE.getIamPolicy, em que RESOURCE é o tipo de recurso para o qual você quer ver recomendações (projects, folders ou organizations)

Talvez você também consiga receber essas permissões com papéis personalizados ou outros papéis predefinidos.

Aplicar e dispensar recomendações

Para ter as permissões necessárias para visualizar, aplicar e dispensar recomendações de papéis, peça ao administrador para conceder a você os seguintes papéis do IAM no recurso em que você quer gerenciar recomendações (projeto, pasta ou organização):

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para visualizar, aplicar e dispensar recomendações de papéis. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para visualizar, aplicar e dispensar recomendações de papéis:

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • recommender.iamPolicyRecommendations.update
  • resourcemanager.RESOURCE.getIamPolicy, em que RESOURCE é o tipo de recurso para o qual você quer gerenciar as recomendações (projects, folders ou organizations).
  • resourcemanager.RESOURCE.setIamPolicy, em que RESOURCE é o tipo de recurso para o qual você quer gerenciar as recomendações (projects, folders ou organizations).

Talvez você também consiga receber essas permissões com papéis personalizados ou outros papéis predefinidos.

Analisar e aplicar recomendações

A maneira mais fácil de avaliar e aplicar as recomendações é usando o Console do Google Cloud. Além disso, se você quiser criar automaticamente um papel personalizado ao aplicar uma recomendação, use o console do Google Cloud.

Você também pode avaliar e aplicar recomendações com a Google Cloud CLI e a API Recommender.

Console

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

    Acessar IAM

  2. Selecione um projeto, pasta ou organização.

  3. Na lista de principais que têm acesso ao seu projeto, encontre a coluna Insights de segurança.

    Para cada papel concedido a um participante, essa coluna mostra todos os insights relacionados à segurança. Esses insights destacam padrões na maneira como os participantes acessam os recursos. Por exemplo, alguns insights destacam as permissões em excesso ou as permissões que um membro não precisa. Outros insights destacam as contas de serviço com recursos de movimento lateral:

    Se houver uma recomendação disponível para abordar um insight, o console do Google Cloud exibirá o ícone Recomendação disponível .

  4. Se houver recomendações para avaliar, clique em um ícone de Recomendação disponível para ver detalhes da recomendação.

    Se a recomendação for substituir o papel, a recomendação do papel sempre irá sugerir um conjunto de papéis predefinidos que é possível aplicar.

    Em alguns casos, a recomendação do papel também sugere a criação de um novo papel personalizado no nível do projeto. Se uma recomendação de papel personalizado estiver disponível, o console do Google Cloud a mostrará por padrão. Para alternar para a recomendação de papel predefinido, clique em Visualizar papel predefinido recomendado.

  5. Avalie a recomendação com atenção e entenda como ela irá alterar o acesso do participantes aos recursos do Google Cloud. Exceto no caso de recomendações para contas de serviço gerenciadas pelo Google, uma recomendação nunca aumenta o nível de acesso de um participante. Consulte Como as recomendações de papel são geradas para mais informações.

    Para saber como analisar as recomendações no console, consulte Revisar recomendações nesta página.

  6. Opcional: se a recomendação for criar um papel personalizado, atualize o Título, a Descrição, o ID e a Etapa de criação do papel conforme necessário.

    Se for necessário adicionar permissões ao papel personalizado, clique em Adicionar permissões.

    Se for necessário remover permissões do papel personalizado, desmarque a caixa de seleção de cada permissão que você queira remover.

  7. Tome providências com relação à recomendação.

    Para aplicar a recomendação, clique em Aplicar ou Criar e aplicar. Se mudar de ideia nos próximos 90 dias, use o histórico de recomendações para reverter a escolha.

    Para dispensar a recomendação, clique em Dispensar e confirme sua escolha. É possível restaurar uma recomendação dispensada, desde que a recomendação ainda seja válida.

  8. Repita as etapas anteriores até ter avaliado todas as recomendações.

gcloud

Revisar suas recomendações:

Para listar as recomendações, execute o comando gcloud recommender recommendations list:

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.iam.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --format=json

Substitua os seguintes valores:

  • RESOURCE_TYPE: o tipo de recurso para que você quer listar recomendações. Use o valor project, folder ou organization.
  • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer listar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.

A resposta é semelhante ao exemplo a seguir. Neste exemplo, uma conta de serviço não usou permissões do papel "Administrador" do Compute (roles/compute.admin) nos últimos 90 dias. Assim, a recomendação do papel sugere que você revogue o papel:

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "description": "This role has not been used during the observation window.",
    "recommenderSubtype": "REMOVE_ROLE",
    "etag": "\"770237e2c0decf40\"",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "stateInfo": {
      "state": "ACTIVE"
    }
  }
]

Avalie cada recomendação com cuidado e veja como isso mudará o acesso do participante aos recursos do Google Cloud. Para saber como analisar as recomendações na CLI gcloud, consulte Revisar recomendações nesta página.

Para aplicar uma recomendação:

  1. Use o comando gcloud recommender recommendations mark-claimed para alterar o estado da recomendação para CLAIMED,, o que impede que a recomendação seja alterada enquanto você a aplica:

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Substitua os seguintes valores:

    • RECOMMENDATION_ID: o identificador exclusivo da recomendação. Esse valor é exibido no final do campo name na recomendação. No exemplo mostrado acima, o ID é fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: o tipo de recurso para que você quer gerenciar recomendações. Use o valor project, folder ou organization.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
    • FORMAT: o formato da resposta. Use json ou yaml.
    • ETAG: o valor do campo etag na recomendação, como "dd0686e7136a4cbb". Observe que esse valor pode incluir aspas.
    • STATE_METADATA: opcional. Pares de chave-valor separados por vírgula que contenham a opção de metadados sobre a recomendação. Por exemplo, --state-metadata=reviewedBy=alice,priority=high. Os metadados substituem o campo stateInfo.stateMetadata na recomendação.

    Se o comando for bem-sucedido, a resposta mostrará a recomendação em um estado CLAIMED, conforme mostrado no exemplo a seguir. Para esclarecer, o exemplo omite a maioria dos campos:

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"df7308cca9719dcc\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]
  2. Consiga a política de permissão do projeto e, em seguida, modifique e defina a política de permissão para que ela reflita a recomendação.

  3. Se tiver conseguido aplicar a recomendação, atualize o estado dela para SUCCEEDED. Caso contrário, atualize o estado para FAILED:

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Substitua os seguintes valores:

    • COMMAND: use mark-succeeded se tiver conseguido aplicar a recomendação. Caso contrário, use mark-failed.
    • RECOMMENDATION_ID: o identificador exclusivo da recomendação. Esse valor é exibido no final do campo name na recomendação. No exemplo mostrado acima, o ID é fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: o tipo de recurso para que você quer gerenciar recomendações. Use o valor project, folder ou organization.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
    • FORMAT: o formato da resposta. Use json ou yaml.
    • ETAG: o valor do campo etag na recomendação, como "dd0686e7136a4cbb". Observe que esse valor pode incluir aspas.
    • STATE_METADATA: opcional. Pares de chave-valor separados por vírgula que contenham a opção de metadados sobre a recomendação. Por exemplo, --state-metadata=reviewedBy=alice,priority=high. Os metadados substituem o campo stateInfo.stateMetadata na recomendação.

    Por exemplo, se você tiver marcado a recomendação como bem-sucedida, a resposta mostrará a recomendação em um estado SUCCEEDED. Para esclarecer, este exemplo omite a maioria dos campos:

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"dd0686e7136a4cbb\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]

REST

Estas instruções presumem que você tenha se autenticado e definido a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.

Revisar suas recomendações:

Se quiser listar todas as recomendações disponíveis para seu projeto, pasta ou organização, use o método recommendations.list da API Recommender.

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • RESOURCE_TYPE: o tipo de recurso para o qual você quer gerenciar recomendações. Use o valor projects, folders ou organizations.
  • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
  • PAGE_SIZE: opcional. O número máximo de resultados a serem retornados a partir dessa solicitação. Se não especificado, o servidor determinará o número de resultados a serem retornados. Se o número de recomendações for maior que o tamanho da página, a resposta conterá um token de paginação que é possível usar para recuperar a próxima página de resultados.
  • PAGE_TOKEN: opcional. O token de paginação retornado em uma resposta anterior desse método. Se especificada, a lista de recomendações começará onde a solicitação anterior foi finalizada.
  • FILTER: opcional. Uma expressão de filtro para restringir as recomendações retornadas. É possível filtrar as recomendações com base no campo stateInfo.state. Por exemplo, stateInfo.state:"DISMISSED" ou stateInfo.state:"FAILED".
  • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.

Método HTTP e URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Para enviar a solicitação, expanda uma destas opções:

A resposta é semelhante ao exemplo a seguir. Neste exemplo, uma conta de serviço no projeto example-project não usou nenhuma permissão do papel Administrador do Compute (roles/compute.admin) nos últimos 90 dias. Assim, o Recomendador sugere que você revogue o papel:

{
  "recommendations": [
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "description": "This role has not been used during the observation window.",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "stateInfo": {
      "state": "ACTIVE"
    }
    "etag": "\"770237e2c0decf40\"",
    "recommenderSubtype": "REMOVE_ROLE",
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
  ]
}

Avalie cada recomendação com cuidado e veja como isso mudará o acesso do participante aos recursos do Google Cloud. Para saber como analisar as recomendações da API REST, consulte Revisar recomendações nesta página.

Para aplicar uma recomendação:

  1. Marque a recomendação como CLAIMED:

    Para marcar uma recomendação como CLAIMED, o que impede que ela seja alterada enquanto você a aplica, use o método recommendations.markClaimed da API Recommender.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • RESOURCE_TYPE: o tipo de recurso para o qual você quer gerenciar recomendações. Use o valor projects, folders ou organizations.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
    • RECOMMENDATION_ID: o identificador exclusivo da recomendação. Esse valor é exibido no final do campo name na recomendação. Por exemplo, se o campo name for projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, o ID de recomendação será fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: o valor do campo etag na recomendação, como "dd0686e7136a4cbb". Use barras invertidas para escapar das aspas, por exemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Um objeto que contém pares de chave-valor com a opção de metadados sobre a recomendação. Por exemplo, {"reviewedBy": "alice", "priority": "high"}. Os metadados substituem o campo stateInfo.stateMetadata na recomendação.
    • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.

    Método HTTP e URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    Corpo JSON da solicitação:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    A resposta mostra a recomendação em um estado CLAIMED, conforme mostrado no exemplo a seguir. Para esclarecer, este exemplo omite a maioria dos campos:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

  2. Verifique a política de permissão do projeto e modifique a política de permissão para que ela reflita a recomendação.

  3. Se tiver conseguido aplicar a recomendação, atualize o estado dela para SUCCEEDED. Caso contrário, atualize o estado para FAILED:

    SUCCEEDED

    Para marcar uma recomendação como SUCCEEDED, indicando que você conseguiu aplicá-la, use o método recommendations.markSucceeded da API Recommender.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • RESOURCE_TYPE: o tipo de recurso para o qual você quer gerenciar recomendações. Use o valor projects, folders ou organizations.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
    • RECOMMENDATION_ID: o identificador exclusivo da recomendação. Esse valor é exibido no final do campo name na recomendação. Por exemplo, se o campo name for projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, o ID de recomendação será fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: o valor do campo etag na recomendação, como "dd0686e7136a4cbb". Use barras invertidas para escapar das aspas, por exemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Um objeto que contém pares de chave-valor com a opção de metadados sobre a recomendação. Por exemplo, {"reviewedBy": "alice", "priority": "high"}. Os metadados substituem o campo stateInfo.stateMetadata na recomendação.
    • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.

    Método HTTP e URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    Corpo JSON da solicitação:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    A resposta mostra a recomendação em um estado SUCCEEDED, conforme mostrado no exemplo a seguir. Para esclarecer, este exemplo omite a maioria dos campos:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

    FAILED

    Para marcar uma recomendação como FAILED, indicando que não foi possível aplicá-la, use o método recommendations.markFailed da API Recommender.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • RESOURCE_TYPE: o tipo de recurso para o qual você quer gerenciar recomendações. Use o valor projects, folders ou organizations.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização do Google Cloud para que você quer gerenciar recomendações. Os IDs do projeto são strings alfanuméricas, como my-project. Os IDs de pastas e organizações são numéricos, como 123456789012.
    • RECOMMENDATION_ID: o identificador exclusivo da recomendação. Esse valor é exibido no final do campo name na recomendação. Por exemplo, se o campo name for projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, o ID de recomendação será fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: o valor do campo etag na recomendação, como "dd0686e7136a4cbb". Use barras invertidas para escapar das aspas, por exemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Um objeto que contém pares de chave-valor com a opção de metadados sobre a recomendação. Por exemplo, {"reviewedBy": "alice", "priority": "high"}. Os metadados substituem o campo stateInfo.stateMetadata na recomendação.
    • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.

    Método HTTP e URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    Corpo JSON da solicitação:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    A resposta mostra a recomendação em um estado FAILED, conforme mostrado no exemplo a seguir. Para esclarecer, este exemplo omite a maioria dos campos:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

Noções básicas sobre as recomendações

Cada recomendação inclui informações para ajudar você a entender por que ela foi feita.

Console

Para ajudar você a entender por que a recomendação foi feita, o console do Google Cloud mostra o uso da permissão do principal, conforme relatado pelo insights de política associados à recomendação. Por exemplo, ele pode mostrar uma lista como a seguinte:

Para ajudar você a entender o impacto da aplicação da recomendação, o console do Google Cloud também mostra uma lista de permissões codificadas por cores e símbolos. Essa lista indica como as permissões do principal serão alteradas se você aplicar a recomendação. Por exemplo, ele mostrará uma lista como a seguinte:

Os tipos de permissão associados a cada cor e símbolo são os seguintes:

  • cinza sem símbolo: permissões que estão no papel atual do participante e nos papéis recomendados.

  • Vermelho com um sinal de menos : permissões que estão no papel atual do membro, mas não nos papéis recomendados porque o participante não os usou nos últimos 90 dias.

  • Verde com um sinal de adição : permissões que não estão no papel atual do participante, mas estão nos papéis recomendados. Esse tipo de permissão aparece somente em recomendações para contas de serviço gerenciadas pelo Google.

  • Azul com um ícone de Machine learning : permissões que estão no papel atual do participante e nos papéis recomendados, não porque o participante usou as permissões nos últimos 90 dias, mas porque o recomendador determinou por meio do machine learning que ele provavelmente precisará dessas permissões no futuro.

Algumas recomendações também são associadas a insights de movimento lateral. Os insights de movimento lateral identificam papéis que permitem que uma conta de serviço em um projeto represente uma conta de serviço em outro projeto. Se uma recomendação estiver associada a um insight de movimento lateral, o console do Google Cloud também mostrará o seguinte:

  • Projeto de origem da conta de serviço: o projeto em que a conta de serviço com permissões de representação foi criada.

  • Contas de serviço que podem ser representadas neste projeto: uma lista de todas as contas de serviço no projeto atual que a conta de serviço com permissões de representação pode representar.

gcloud

Para detalhes sobre os campos de uma recomendação, consulte a referência Recommendation.

Para ver o uso da permissão na qual essa recomendação se baseia, consulte os insights associados a ela. Esses insights são listados no campo associatedInsights. Para visualizar um insight de política associado à recomendação, faça o seguinte:

  • Identifique quais insights no campo associatedInsights são insights de política Os insights de política têm o tipo de insight google.iam.policy.insight Esse tipo aparece depois de insightTypes no campo insight.
  • Copie o ID do insight de política. O ID é tudo depois de insights/ no campo insight. No exemplo anterior, o ID do insight é 279ef748-408f-44db-9a4a-1ff8865b9839.
  • Siga as instruções para receber um insight de política usando o ID do insight que você copiou.

Algumas recomendações também são associadas a insights de movimento lateral, que identificam papéis que permitem que contas de serviço em um projeto personifiquem contas de serviço em outro. Esses insights são listados no campo associatedInsights. Para visualizar um insight de movimento lateral associado à recomendação, faça o seguinte:

  • Identifique quais insights no campo associatedInsights são insights de movimento lateral. Os insights de movimento lateral têm o tipo de insight google.iam.policy.LateralMovementInsight. Esse tipo aparece depois de insightTypes no campo insight.
  • Copie o ID do insight de política. O ID é tudo depois de insights/ no campo insight. No exemplo anterior, o ID do insight é 279ef748-408f-44db-9a4a-1ff8865b9839.
  • Siga as instruções para receber um insight de movimento lateral, usando o ID do insight que você copiou.

REST

Para detalhes sobre os campos de uma recomendação, consulte a referência Recommendation.

Para ver o uso da permissão na qual essa recomendação se baseia, consulte os insights associados a ela. Esses insights são listados no campo associatedInsights. Para visualizar um insight de política associado à recomendação, faça o seguinte:

  1. Identifique quais insights no campo associatedInsights são insights de política Os insights de política têm o tipo de insight google.iam.policy.insight Esse tipo aparece depois de insightTypes no campo insight.
  2. Copie o ID do insight de política. O ID é tudo depois de insights/ no campo insight. Por exemplo, se o campo insight mostrar projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839, o ID do insight será 279ef748-408f-44db-9a4a-1ff8865b9839.
  3. Siga as instruções para receber um insight de política usando o ID do insight que você copiou.

Algumas recomendações também são associadas a insights de movimento lateral, que identificam papéis que permitem que contas de serviço em um projeto personifiquem contas de serviço em outro. Esses insights são listados no campo associatedInsights. Para visualizar um insight de movimento lateral associado à recomendação, faça o seguinte:

  1. Identifique quais insights no campo associatedInsights são insights de movimento lateral. Os insights de movimento lateral têm o tipo de insight google.iam.policy.LateralMovementInsight. Esse tipo aparece depois de insightTypes no campo insight.
  2. Copie o ID do insight de política. O ID é tudo depois de insights/ no campo insight. Por exemplo, se o campo insight mostrar projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860, o ID do insight será 13088eec-9573-415f-81a7-46e1a260e860.
  3. Siga as instruções para receber um insight de movimento lateral, usando o ID do insight que você copiou.

Ver, reverter e restaurar alterações

Depois de aplicar ou descartar uma recomendação para vinculação no nível do projeto, essa ação será exibida no histórico de recomendações.

Para ver o histórico, siga estas etapas:

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

    Acessar IAM

  2. Selecione um projeto, pasta ou organização.

  3. Próximo à parte superior da tela, clique em Histórico de recomendações.

    O console do Google Cloud mostra uma lista de ações anteriores nas recomendações de papéis.

  4. Para visualizar detalhes sobre uma recomendação, clique na seta expansora .

    O console do Google Cloud mostra detalhes sobre a ação que foi realizada, incluindo o principal que realizou a ação:

  5. (Opcional) Se necessário, é possível reverter a recomendação, o que desfará as alterações feitas. Também é possível restaurar uma recomendação dispensada.

    Para reverter uma alteração aplicada anteriormente a uma recomendação, clique em Reverter. O console do Google Cloud reverte as alterações para os papéis da principal. A recomendação não aparece mais no console do Google Cloud.

    Para restaurar uma recomendação dispensada, clique em Restaurar. A recomendação fica visível na página IAM do console do Google Cloud. Nem papéis nem permissões são alterados.

A seguir