Encontre contas de serviço com autorizações de movimento lateral

Esta página mostra como gerir as estatísticas de movimento lateral, que identificam funções que permitem a uma conta de serviço num projeto roubar a identidade de uma conta de serviço noutro projeto. Para mais informações sobre as estatísticas de movimento lateral, consulte o artigo Como são geradas as estatísticas de movimento lateral.

Por vezes, as estatísticas de movimento lateral estão associadas a recomendações de funções. As recomendações de funções sugerem ações que pode realizar para corrigir os problemas identificados pelas estatísticas de movimento lateral.

Antes de começar

Funções necessárias

Para receber as autorizações de que precisa para gerir as estatísticas de movimento lateral, peça ao seu administrador que lhe conceda as seguintes funções de IAM no projeto, na pasta ou na organização para a qual quer gerir estatísticas:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para gerir as estatísticas de movimento lateral. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para gerir as estatísticas de movimento lateral:

  • Para ver estatísticas de movimento lateral:
    • recommender.iamPolicyLateralMovementInsights.get
    • recommender.iamPolicyLateralMovementInsights.list
  • Para modificar as estatísticas de movimento lateral: recommender.iamPolicyLateralMovementInsights.update

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Apresente estatísticas de movimento lateral

Para apresentar uma lista de todas as estatísticas de movimento lateral do seu projeto, pasta ou organização, use um dos seguintes métodos:

Consola

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda ao IAM

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

A coluna Estatísticas de segurança mostra todas as estatísticas relacionadas com a segurança do seu projeto, incluindo estatísticas de movimento lateral. As estatísticas de movimento lateral têm o formato N service account impersonations, onde N é o número de contas de serviço que a conta de serviço na associação de funções pode usar a identidade.

gcloud

Use o comando gcloud recommender insights list para ver todas as estatísticas de movimento lateral do seu projeto, pasta, ou organização.

Antes de executar o comando, substitua os seguintes valores:

  • RESOURCE_TYPE: o tipo de recurso para o qual quer listar estatísticas. Use o valor project, folder, ou organization.
  • RESOURCE_ID: o ID do projeto, pasta, ou organização para a qual quer apresentar estatísticas.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

O resultado apresenta todas as estatísticas de movimento lateral para o seu projeto, pasta ou organização. Por exemplo:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE              DESCRIPTION
046f8b89-bcee-46cd-9ac4-06818ed5273a  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
1328df82-5af2-4493-9850-d8ede4e72b27  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-2@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
17f50957-333c-4f21-86c1-6a62216b309e  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-3@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
187200d2-b42c-48fb-86d7-c2746a87fed2  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-4@another-project.iam.gserviceaccount.com from another project can impersonate 32 service account(s) under this project.
1f1740a4-ff98-4f64-99a4-5ef5df5a2097  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-5@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.

REST

O método insights.list da API Recommender lista todas as estatísticas de movimento lateral para o seu projeto, pasta ou organização.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso para o qual quer apresentar estatísticas. Use o valor projects, folders, ou organizations.
  • RESOURCE_ID: o ID do projeto, pasta, ou organização para a qual quer apresentar estatísticas.
  • PROJECT_ID: O ID do Google Cloud projeto. Os IDs dos projetos 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/insightTypes/google.iam.policy.LateralMovementInsight/insights

Para enviar o seu pedido, expanda uma destas opções:

A resposta apresenta todos os detalhes de movimento lateral do seu projeto, pasta ou organização. Por exemplo:

{
  "insights": [
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
      "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
      "content": {
        "impersonator": {
          "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
          "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
          "isGoogleManaged": false
        },
        "targetServiceAccounts": [
          "target-service-account-1@this-project.iam.gserviceaccount.com",
          "target-service-account-2@this-project.iam.gserviceaccount.com"
        ],
        "impersonationPolicy": {
          "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
          "role": "roles/editor",
          "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
          "condition": {
            "expression": "",
            "title": "",
            "description": "",
            "location": ""
          }
        },
        "impersonationPermissionUsage": [
          {
            "permission": "iam.serviceAccounts.actAs"
            "used": false
          }
        ],
        "hasPermissionUsageData": true
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7776000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
        }
      ],
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ],
      "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
      "etag": "\"f48fa6a1b15c7741\"",
      "severity": "LOW"
    }
  ]
}

Para saber mais acerca dos componentes de uma estatística, consulte a secção Reveja as estatísticas de movimento lateral nesta página.

Aceda a uma única estatística de movimento lateral

Para obter mais informações sobre uma única estatística, incluindo a descrição, o estado e as recomendações associadas, use um dos seguintes métodos:

Consola

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Selecione um projeto, uma pasta ou uma organização.
  3. Na coluna Estatísticas de segurança, clique numa estatística de movimento lateral. As estatísticas de movimento lateral têm o formato N service account impersonations, onde N é o número de contas de serviço que a conta de serviço na associação de funções pode usar a identidade.

A Google Cloud consola abre um painel que mostra os detalhes da estatística.

gcloud

Use o comando gcloud recommender insights describe com o ID da estatística para ver informações sobre uma única estatística.

  • INSIGHT_ID: o ID da estatística que quer ver. Para encontrar o ID, liste as estatísticas do seu projeto, pasta ou organização.
  • RESOURCE_TYPE: o tipo de recurso para o qual quer gerir estatísticas. Use o valor project, folder, ou organization.
  • RESOURCE_ID: o ID do projeto, pasta ou organização para o qual quer gerir estatísticas.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

O resultado mostra a estatística detalhadamente. Por exemplo, a seguinte estatística indica que a política de IAM no projeto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com se faça passar por target-service-account-1@this-project.iam.gserviceaccount.com e target-service-account-2@this-project.iam.gserviceaccount.com.

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Para saber mais acerca dos componentes de uma estatística, consulte a secção Reveja as estatísticas de movimento lateral nesta página.

REST

O método insights.get da API Recommender recebe uma única estatística.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso para o qual quer gerir as estatísticas. Use o valor projects, folders, ou organizations.
  • RESOURCE_ID: o ID do projeto, pasta ou organização para os quais quer gerir estatísticas.
  • INSIGHT_ID: o ID da estatística que quer ver. Se não souber o ID das estatísticas, pode encontrá-lo listando as estatísticas no seu projeto, pasta ou organização. O ID de uma estatística é tudo o que se encontra depois de insights/ no campo name da estatística.
  • PROJECT_ID: O ID do Google Cloud projeto. Os IDs dos projetos 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/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

Para enviar o seu pedido, expanda uma destas opções:

A resposta contém a estatística. Por exemplo, a seguinte estatística indica que a política de IAM no projeto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com se faça passar por target-service-account-1@this-project.iam.gserviceaccount.com e target-service-account-2@this-project.iam.gserviceaccount.com.

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\"",
  "severity": "LOW"
}

Para saber mais acerca dos componentes de uma estatística, consulte a secção Reveja as estatísticas de movimento lateral nesta página.

Reveja as estatísticas de movimento lateral

Depois de receber uma única estatística, pode rever o respetivo conteúdo para compreender o padrão de utilização de recursos que realça.

Consola

Quando clica numa estatística de movimento lateral na Google Cloud consola, a Google Cloud consola abre um painel que mostra os detalhes da estatística. A apresentação destes detalhes depende de o detalhe estar associado a uma recomendação.

Se a estatística estiver associada a uma recomendação, o painel mostra os detalhes da recomendação.

Se a estatística não estiver associada a uma recomendação, o painel mostra o seguinte:

  • O projeto de origem da conta de serviço: o projeto no qual a conta de serviço com autorizações de simulação foi criada.

  • Contas de serviço que podem ser simuladas neste projeto. Uma lista de todas as contas de serviço no projeto atual que a conta de serviço com autorizações de roubo de identidade pode roubar.

  • Autorizações que permitem a representação no projeto: uma lista das autorizações de representação que a conta de serviço tem.

  • Autorizações atuais: uma lista de todas as autorizações da conta de serviço.

gcloud

O conteúdo de uma estatística é determinado pelos respetivos subtipos. As estatísticas de movimento lateral (google.iam.policy.LateralMovementInsight) têm o subtipo CROSS_PROJECT_IMPERSONATION.

As estatísticas CROSS_PROJECT_IMPERSONATION têm os seguintes componentes, não necessariamente nesta ordem:

  • associatedRecommendations: Os identificadores de quaisquer recomendações associadas à estatística. Se não existirem recomendações associadas à estatística, este campo está vazio.
  • category: a categoria das estatísticas de IAM é sempre SECURITY.
  • content: comunica os detalhes da capacidade da conta de serviço de se fazer passar por contas de serviço noutros projetos. Este campo contém os seguintes componentes:

    • hasPermissionUsageData: um valor booleano que indica se existem dados de utilização de autorizações para esta associação de funções. Os dados de utilização das autorizações indicam se as autorizações na associação de funções foram usadas. Estes dados não estão disponíveis para associações de funções condicionais.
    • impersonationPermissionUsage: Uma lista de autorizações de roubo de identidade e as respetivas informações de utilização. Se uma autorização foi usada nos últimos 90 dias, é considerada usada. Caso contrário, é considerado não usado.

      Se hasPermissionUsageData for falso, o campo impersonationPermissionUsage está vazio.

    • impersonationPolicy: informações sobre a associação de funções que concede autorizações de simulação da conta de serviço.
    • impersonator: detalhes sobre a conta de serviço que tem autorização para se fazer passar por contas de serviço no seu projeto, incluindo o seguinte:
      • isGoogleManaged: se a conta de serviço é detida e gerida pela Google.
      • serviceAccount: o endereço de email da conta de serviço.
      • serviceAccountOwner: o projeto proprietário da conta de serviço. Se a Google for proprietária da conta de serviço, o valor deste campo é Google managed. Se um projeto fora da sua organização for proprietário da conta de serviço, o valor deste campo é Unknown to your org.
    • targetServiceAccounts: uma lista das contas de serviço que a conta de serviço no campo impersonator tem autorização para usar a identidade. Se o autor da representação indevida puder representar indevidamente mais de 1500 contas de serviço, a lista está vazia. Para saber quantas contas de serviço o autor da representação pode representar, consulte o campo description.
  • description: um resumo da estatística legível por humanos.
  • etag: um identificador exclusivo do estado atual de uma estatística. Sempre que a estatística muda, é atribuído um novo valor etag.

    Para alterar o estado de uma estatística, tem de fornecer o etag da estatística existente. A utilização do etag ajuda a garantir que as operações só são realizadas se a estatística não tiver sido alterada desde a última vez que a obteve.

  • insightSubtype: o subtipo de estatística.
  • lastRefreshTime: a data da última atualização da estatística, que indica a atualidade dos dados usados para gerar a estatística.
  • name: o nome da estatística, no seguinte formato:

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    Os marcadores de posição têm os seguintes valores:

    • RESOURCE_TYPE: o tipo de recurso para o qual a estatística foi gerada.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização onde a estatística foi gerada.
    • INSIGHT_ID: um ID exclusivo para a estatística.
  • observationPeriod: o período que antecede a estatística. Os dados de origem usados para gerar as estatísticas terminam a lastRefreshTime e começam a lastRefreshTime menos observationPeriod.
  • severity: a gravidade da estatística. Todas as informações sobre o movimento lateral têm uma gravidade de LOW.
  • stateInfo: as estatísticas passam por várias transições de estado depois de serem propostas:

    • ACTIVE: a estatística foi gerada, mas não foram tomadas ações ou foi tomada uma ação sem atualizar o estado da estatística. As estatísticas ativas são atualizadas quando os dados subjacentes mudam.
    • ACCEPTED: foi tomada alguma medida com base na estatística. As estatísticas são aceites quando uma recomendação associada foi marcada como CLAIMED, SUCCEEDED ou FAILED, ou quando a estatística foi aceite diretamente. Quando um insight está no estado ACCEPTED, o conteúdo do insight não pode ser alterado. As estatísticas aceites são retidas durante 90 dias após serem aceites.
  • targetResources: o nome completo do recurso da organização, da pasta, do projeto ou da conta de serviço a que se refere a estatística. Por exemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

REST

O conteúdo de uma estatística é determinado pelos respetivos subtipos. As estatísticas de movimento lateral (google.iam.policy.LateralMovementInsight) têm o subtipo CROSS_PROJECT_IMPERSONATION.

As estatísticas CROSS_PROJECT_IMPERSONATION têm os seguintes componentes, não necessariamente nesta ordem:

  • associatedRecommendations: Os identificadores de quaisquer recomendações associadas à estatística. Se não existirem recomendações associadas à estatística, este campo está vazio.
  • category: a categoria das estatísticas de IAM é sempre SECURITY.
  • content: comunica os detalhes da capacidade da conta de serviço de se fazer passar por contas de serviço noutros projetos. Este campo contém os seguintes componentes:

    • hasPermissionUsageData: um valor booleano que indica se existem dados de utilização de autorizações para esta associação de funções. Os dados de utilização das autorizações indicam se as autorizações na associação de funções foram usadas. Estes dados não estão disponíveis para associações de funções condicionais.
    • impersonationPermissionUsage: Uma lista de autorizações de roubo de identidade e as respetivas informações de utilização. Se uma autorização foi usada nos últimos 90 dias, é considerada usada. Caso contrário, é considerado não usado.

      Se hasPermissionUsageData for falso, o campo impersonationPermissionUsage está vazio.

    • impersonationPolicy: informações sobre a associação de funções que concede autorizações de simulação da conta de serviço.
    • impersonator: detalhes sobre a conta de serviço que tem autorização para se fazer passar por contas de serviço no seu projeto, incluindo o seguinte:
      • isGoogleManaged: se a conta de serviço é detida e gerida pela Google.
      • serviceAccount: o endereço de email da conta de serviço.
      • serviceAccountOwner: o projeto proprietário da conta de serviço. Se a Google for proprietária da conta de serviço, o valor deste campo é Google managed. Se um projeto fora da sua organização for proprietário da conta de serviço, o valor deste campo é Unknown to your org.
    • targetServiceAccounts: uma lista das contas de serviço que a conta de serviço no campo impersonator tem autorização para usar a identidade. Se o autor da representação indevida puder representar indevidamente mais de 1500 contas de serviço, a lista está vazia. Para saber quantas contas de serviço o autor da representação pode representar, consulte o campo description.
  • description: um resumo da estatística legível por humanos.
  • etag: um identificador exclusivo do estado atual de uma estatística. Sempre que a estatística muda, é atribuído um novo valor etag.

    Para alterar o estado de uma estatística, tem de fornecer o etag da estatística existente. A utilização do etag ajuda a garantir que as operações só são realizadas se a estatística não tiver sido alterada desde a última vez que a obteve.

  • insightSubtype: o subtipo de estatística.
  • lastRefreshTime: a data da última atualização da estatística, que indica a atualidade dos dados usados para gerar a estatística.
  • name: o nome da estatística, no seguinte formato:

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    Os marcadores de posição têm os seguintes valores:

    • RESOURCE_TYPE: o tipo de recurso para o qual a estatística foi gerada.
    • RESOURCE_ID: o ID do projeto, da pasta ou da organização onde a estatística foi gerada.
    • INSIGHT_ID: um ID exclusivo para a estatística.
  • observationPeriod: o período que antecede a estatística. Os dados de origem usados para gerar as estatísticas terminam a lastRefreshTime e começam a lastRefreshTime menos observationPeriod.
  • severity: a gravidade da estatística. Todas as informações sobre o movimento lateral têm uma gravidade de LOW.
  • stateInfo: as estatísticas passam por várias transições de estado depois de serem propostas:

    • ACTIVE: a estatística foi gerada, mas não foram tomadas ações ou foi tomada uma ação sem atualizar o estado da estatística. As estatísticas ativas são atualizadas quando os dados subjacentes mudam.
    • ACCEPTED: foi tomada alguma medida com base na estatística. As estatísticas são aceites quando uma recomendação associada foi marcada como CLAIMED, SUCCEEDED ou FAILED, ou quando a estatística foi aceite diretamente. Quando um insight está no estado ACCEPTED, o conteúdo do insight não pode ser alterado. As estatísticas aceites são retidas durante 90 dias após serem aceites.
  • targetResources: o nome completo do recurso da organização, da pasta, do projeto ou da conta de serviço a que se refere a estatística. Por exemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

Marque uma estatística de movimento lateral como ACCEPTED

Se tomar medidas com base numa estatística ativa, pode marcar essa estatística como ACCEPTED. O estado ACCEPTED indica à API Recommender que tomou medidas com base nesta estatística, o que ajuda a refinar as suas recomendações.

As estatísticas aceites são retidas durante 90 dias após serem marcadas como ACCEPTED.

Consola

Se uma estatística estiver associada a uma recomendação, aplicar a recomendação altera o estado da estatística para ACCEPTED.

Para marcar uma estatística como ACCEPTED sem aplicar uma recomendação, use a CLI gcloud ou a API REST.

gcloud

Use o comando gcloud recommender insights mark-accepted com o ID das estatísticas para marcar uma estatística como ACCEPTED.

  • INSIGHT_ID: o ID da estatística que quer ver. Para encontrar o ID, liste as estatísticas do seu projeto, pasta ou organização.
  • RESOURCE_TYPE: o tipo de recurso para o qual quer gerir estatísticas. Use o valor project, folder, ou organization.
  • RESOURCE_ID: o ID do projeto, pasta ou organização para o qual quer gerir estatísticas.
  • ETAG: um identificador de uma versão da estatística. Para receber o etag, faça o seguinte:

    1. Obtenha as estatísticas através do comando gcloud recommender insights describe.
    2. Localize e copie o valor etag do resultado, incluindo as aspas circundantes. Por exemplo, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global \
    --etag=ETAG

O resultado mostra a estatística, agora com o estado de ACCEPTED:

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Para saber mais sobre as informações de estado de uma estatística, consulte o artigo Reveja as estatísticas de movimento lateral nesta página.

REST

O método insights.markAccepted da API Recommender marca uma estatística como ACCEPTED.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso para o qual quer gerir as estatísticas. Use o valor projects, folders, ou organizations.
  • RESOURCE_ID: o ID do projeto, pasta ou organização para os quais quer gerir estatísticas.
  • INSIGHT_ID: o ID da estatística que quer ver. Se não souber o ID das estatísticas, pode encontrá-lo listando as estatísticas no seu projeto, pasta ou organização. O ID de uma estatística é tudo o que se encontra depois de insights/ no campo name da estatística.
  • ETAG: um identificador de uma versão da estatística. Para obter o etag, faça o seguinte:
    1. Obtenha a estatística através do método insights.get.
    2. Encontre e copie o valor etag da resposta.
  • PROJECT_ID: O ID do Google Cloud projeto. Os IDs dos projetos 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/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID:markAccepted

Corpo JSON do pedido:

{
  "etag": "ETAG"
}

Para enviar o seu pedido, expanda uma destas opções:

A resposta contém a estatística, agora com o estado ACCEPTED:

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\"",
  "severity": "LOW"
}

Para saber mais sobre as informações de estado de uma estatística, consulte o artigo Reveja as estatísticas de movimento lateral nesta página.

O que se segue?