Configurar a geração de recomendações de função

Ao mudar a configuração do recomendador do IAM, você pode personalizar como as recomendações de função são geradas. Esta página explica como editar a configuração para mudar a rapidez com que as recomendações são geradas para seu projeto.

Embora o recomendador do IAM gere recomendações de papel para vários recursos, você só pode editar como as recomendações de papel são geradas para projetos.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para configurar recomendações de função do IAM, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto cujo recomendador do IAM você quer configurar:

  • Confira os detalhes da configuração: Visualizador de recomendações do IAM (roles/recommender.iamViewer)
  • Modifique a configuração: Administrador do IAM Recommender (roles/recommender.iamAdmin)

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

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

Permissões necessárias

As permissões a seguir são necessárias para configurar as recomendações de função do IAM:

  • Conferir detalhes da configuração: recommender.iamPolicyRecommenderConfig.get
  • Modifique a configuração: recommender.iamPolicyRecommenderConfig.update

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Conferir sua configuração atual

Confira sua configuração atual para saber quantos dias de dados de uso de permissão o recomendador do IAM espera antes de gerar recomendações de função.

É possível conferir a configuração usando a CLI gcloud ou a API REST.

gcloud

Para conferir a configuração do recomendador do IAM de um projeto, use o comando gcloud beta recommender recommender-config describe.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.

Execute o comando gcloud beta recommender recommender-config describe:

Linux, macOS ou Cloud Shell

gcloud beta recommender recommender-config describe \
google.iam.policy.Recommender \
--project="PROJECT_ID" \
--location="global"

Windows (PowerShell)

gcloud beta recommender recommender-config describe `
google.iam.policy.Recommender `
--project="PROJECT_ID" `
--location="global"

Windows (cmd.exe)

gcloud beta recommender recommender-config describe ^
google.iam.policy.Recommender ^
--project="PROJECT_ID" ^
--location="global"

A resposta contém a configuração do recomendador do IAM do projeto. Por exemplo, ele pode ter a seguinte aparência:

etag: '"d3e779ee3f34f276"'
name: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config
recommenderGenerationConfig:
  params:
    minimum_observation_period: P90D
revisionId: DEFAULT
updateTime: '2022-10-02T22:57:33Z'

REST

Para conferir a configuração do recomendador do IAM de um projeto, use o método projects.locations.recommenders.getConfig da API Recommender.

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

  • PROJECT_NUMBER: o ID numérico do seu projeto do Google Cloud.
  • 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/v1beta1/projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config

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

A resposta contém a configuração do recomendador do IAM do projeto. Por exemplo, ele pode ter a seguinte aparência:

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "minimum_observation_period": "P90D"
    }
  },
  "etag": "\"d3e779ee3f34f276\"",
  "updateTime": "2022-10-02T22:57:33Z",
  "revisionId": "DEFAULT"
}

Entender os detalhes da configuração

O conteúdo de uma configuração depende do recomendador para o qual ela é feita. As configurações do recomendador do IAM têm os seguintes componentes, não necessariamente nesta ordem:

  • name: o identificador da configuração, no formato projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config.
  • recommenderGenerationConfig: os parâmetros que o recomendador do IAM usa ao gerar recomendações. Esse campo contém os seguintes parâmetros:

    • minimum_observation_period: o número de dias de dados de uso de permissão que o recomendador do IAM precisa para começar a gerar recomendações de função.
  • etag: um identificador do estado atual de uma configuração, usado para evitar atualizações simultâneas. Toda vez que a configuração muda, um novo valor de ETag é atribuído.

  • updateTime: o carimbo de data/hora do horário mais recente em que a configuração foi atualizada, no formato UTC (RFC 3339).

  • revisionId: somente saída. Um identificador da revisão atual da configuração. Esse valor é atualizado sempre que a configuração é editada.

Editar a configuração

Edite a configuração para mudar a rapidez com que as recomendações são geradas para seu projeto.

gcloud

Para editar a configuração do recomendador do IAM de um projeto, use o comando gcloud beta recommender recommender-config update.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • OBSERVATION_PERIOD: o período mínimo de observação que você quer definir. Use um dos seguintes valores: P30D (30 dias), P60D (60 dias) ou P90D (90 dias).
  • ETAG: a Etag atual da configuração, que pode ser encontrada buscando a configuração atual e copiando o valor do campo etag da resposta.
  • PROJECT_ID: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, como my-project.
  • Salve o conteúdo a seguir em um arquivo chamado request.json:

    {
      "params": {
        "minimum_observation_period": "OBSERVATION_PERIOD"
      }
    }

    Execute o comando gcloud beta recommender recommender-config update:

    Linux, macOS ou Cloud Shell

    gcloud beta recommender recommender-config update \
    google.iam.policy.Recommender \
    --etag="ETAG" \
    --project="PROJECT_ID" \
    --location="global" \
    --config-file="request.json"

    Windows (PowerShell)

    gcloud beta recommender recommender-config update `
    google.iam.policy.Recommender `
    --etag="ETAG" `
    --project="PROJECT_ID" `
    --location="global" `
    --config-file="request.json"

    Windows (cmd.exe)

    gcloud beta recommender recommender-config update ^
    google.iam.policy.Recommender ^
    --etag="ETAG" ^
    --project="PROJECT_ID" ^
    --location="global" ^
    --config-file="request.json"

    A resposta contém a configuração atualizada. Por exemplo, ele pode ter esta aparência:

    etag: '"2549af0942332910"'
    name: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config
    recommenderGenerationConfig:
      params:
        minimum_observation_period: P60D
    revisionId: 288c60eb
    updateTime: '2022-10-05T21:42:21.069170Z'
    

REST

Para editar a configuração do recommender do IAM de um projeto, use o método projects.locations.recommenders.updateConfig da API Recommender.

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

  • PROJECT_NUMBER: o ID numérico do seu projeto do Google Cloud.
  • OBSERVATION_PERIOD: o período mínimo de observação que você quer definir. Use um dos seguintes valores: P30D (30 dias), P60D (60 dias) ou P90D (90 dias).
  • ETAG: a Etag atual da configuração, que pode ser encontrada abrindo a configuração atual e copiando o valor do campo etag da resposta. Use barras invertidas para escapar das aspas, por exemplo, "\"df7308cca9719dcc\"".
  • 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:

    PATCH https://recommender.googleapis.com/v1beta1/projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config

    Corpo JSON da solicitação:

    {
      "name": "projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config",
      "recommenderGenerationConfig": {
        "params": {
          "minimum_observation_period": "OBSERVATION_PERIOD"
        }
      },
      "etag": "ETAG"
    }
    

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

    A resposta contém a configuração atualizada. Por exemplo, ele pode ter esta aparência:

    {
      "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config",
      "recommenderGenerationConfig": {
        "params": {
          "minimum_observation_period": "P60D"
        }
      },
      "etag": "\"2549af0942332910\"",
      "updateTime": "2022-10-05T21:26:52.127512Z",
      "revisionId": "b5fc0053"
    }
    

A seguir