Busca cuentas de servicio con permisos de movimiento lateral

En esta página, se muestra cómo administrar las estadísticas de movimientos laterales, que identifican las funciones que permiten que una cuenta de servicio de un proyecto se haga pasar por una cuenta de servicio de otro. Para obtener más información sobre las estadísticas de movimiento lateral, consulta Cómo se generan las estadísticas de movimiento lateral.

Las estadísticas de movimiento lateral a veces están vinculadas a recomendaciones de función. Las recomendaciones de funciones sugieren acciones que puedes realizar para solucionar los problemas identificados por las estadísticas de movimiento lateral.

Antes de comenzar

Funciones requeridas

A fin de obtener los permisos que necesitas para administrar las estadísticas de movimientos laterales, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto en el que deseas administrar las estadísticas:

  • Para ver las estadísticas de movimiento laterales: Visualizador del recomendador de IAM (roles/recommender.iamViewer)
  • Para modificar las estadísticas de movimiento laterales: Administrador del recomendador de IAM (roles/recommender.iamAdmin)

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Estos roles predefinidos contienen los permisos necesarios para administrar las estadísticas de movimientos laterales. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

  • Para ver las estadísticas de movimientos laterales:
    • recommender.iamPolicyLateralMovementInsights.get
    • recommender.iamPolicyLateralMovementInsights.list
  • Para modificar las estadísticas de movimientos laterales: recommender.iamPolicyLateralMovementInsights.update

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Enumera la lista de estadísticas de movimiento lateral

Para enumerar todas las estadísticas de movimiento lateral de tu proyecto, usa uno de los siguientes métodos:

Console

  1. En la consola, ve a la página IAM.

    Ir a IAM

  2. Selecciona un proyecto

La columna Estadísticas de seguridad muestra todas las estadísticas relacionadas con la seguridad de tu proyecto, incluidas las estadísticas de movimiento laterales. Las estadísticas de movimiento laterales tienen el formato N service account impersonations, en el que N es la cantidad de cuentas de servicio que la cuenta de servicio en la vinculación de función puede actuar en nombre de ella.

gcloud

Usa el comando gcloud recommender insights list para ver todas las estadísticas de movimiento lateral de tu proyecto.

Antes de ejecutar el comando, reemplaza los siguientes valores:

  • PROJECT_ID: el ID del proyecto para el que deseas enumerar las estadísticas. En esta lista, también se incluyen estadísticas de movimiento lateral para las vinculaciones de funciones a nivel de cuenta de servicio en tu proyecto.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global

En el resultado, se enumeran todas las estadísticas de movimiento lateral para tu proyecto. Por ejemplo:

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

El método insights.list de la API de recomendador enumera todas las estadísticas de movimiento lateral para el proyecto.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID del proyecto para el que deseas enumerar las estadísticas.

Método HTTP y URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights

Para enviar tu solicitud, expande una de estas opciones:

En la respuesta, se enumeran todas las estadísticas de movimiento lateral de tu proyecto. Por ejemplo:

{
  "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 obtener más información sobre los componentes de una estadística, consulta Revisa las estadísticas de movimiento lateral en esta página.

Obtén una sola estadística de movimiento lateral

Para obtener más información sobre una sola estadística, incluida la descripción, el estado y las recomendaciones asociadas, usa uno de los siguientes métodos:

Console

  1. En la consola, ve a la página IAM.

    Ir a IAM

  2. Selecciona un proyecto
  3. En la columna Estadísticas de seguridad, haz clic en una estadística de movimiento lateral. Las estadísticas de movimiento posteriores tienen el formato N service account impersonations, en el que N es la cantidad de cuentas de servicio que la cuenta de servicio en la vinculación de función puede actuar en nombre de ella.

La consola abre un panel que muestra los detalles de la estadística.

gcloud

Usa el comando gcloud recommender insights describe con tu ID de estadística para ver información sobre una sola estadística de IAM.

  • INSIGHT_ID: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas en el proyecto.
  • PROJECT_ID: El ID del proyecto para el que deseas administrar las estadísticas
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global

En el resultado, se muestra la estadística en detalle. Por ejemplo, la siguiente estadística indica que la política de IAM en el proyecto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com actúe en nombre de target-service-account-1@this-project.iam.gserviceaccount.com y 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 obtener más información sobre los componentes de una estadística, consulta Revisa las estadísticas de movimiento lateral en esta página.

REST

Mediante el método insights.get de la API de recomendador, se obtiene una sola estadística.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID del proyecto para el que deseas administrar las estadísticas.
  • INSIGHT_ID: El ID de la estadística que deseas ver. Si no conoces el ID de estadística, puedes enumerar las estadísticas en tu proyecto para encontrarlo. El ID de una estadística es todo lo que se encuentra después de insights/ en el campo name de la estadística

Método HTTP y URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene las estadísticas. Por ejemplo, la siguiente estadística indica que la política de IAM en el proyecto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com actúe en nombre de target-service-account-1@this-project.iam.gserviceaccount.com y 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 obtener más información sobre los componentes de una estadística, consulta Revisa las estadísticas de movimiento lateral en esta página.

Revisa las estadísticas de movimiento lateral

Después de obtener una sola estadística, puedes revisar su contenido para comprender el patrón de uso de recursos que destaca.

Console

Cuando haces clic en una estadística de movimiento lateral en la consola, esta abre un panel que muestra los detalles de la estadística. El aspecto de estos detalles depende de si la estadística está asociada con una recomendación.

Si la estadística está asociada con una recomendación, el panel muestra los detalles de la recomendación.

Si la estadística no está asociada con una recomendación, el panel muestra lo siguiente:

  • Proyecto de origen de la cuenta de servicio: El proyecto en el que se creó la cuenta de servicio con permisos de robo de identidad.

  • Cuentas de servicio que pueden actuar en nombre de esta cuenta. Una lista de todas las cuentas de servicio en el proyecto actual a las que pueden actuar en nombre de la cuenta de servicio con permisos de suplantación.

  • Permisos que permiten el robo de identidad en el proyecto: Una lista de los permisos de robo de identidad que tiene la cuenta de servicio.

  • Permisos actuales: Una lista de todos los permisos de la cuenta de servicio.

gcloud

Los subtipos determinan el contenido de una estadística. Las estadísticas de movimiento posterior (google.iam.policy.LateralMovementInsight) tienen el subtipo CROSS_PROJECT_IMPERSONATION.

Las estadísticas de CROSS_PROJECT_IMPERSONATION tienen los siguientes componentes (en cualquier orden):

  • associatedRecommendations: Los identificadores de cualquier recomendación asociada con la estadística. Si no hay recomendaciones asociadas con la estadística, este campo estará vacío.
  • category: La categoría de las estadísticas de IAM siempre es SECURITY.
  • content: informa los detalles de la capacidad de la cuenta de servicio para actuar en nombre de cuentas de servicio en otros proyectos. En este campo, se encuentran los siguientes componentes:

    • hasPermissionUsageData: un valor booleano que indica si hay datos de uso de permisos para esta vinculación de función. Los datos de uso de permisos indican si se usaron los permisos en la vinculación de la función. Estos datos no están disponibles para las vinculaciones de funciones condicionales.
    • impersonationPermissionUsage: Es una lista de permisos de robo de identidad y su información de uso. Si se usó un permiso en los últimos {{lmi_permission_usage_period}} días, se considerará usado. De lo contrario, se considerará sin uso.

      Si hasPermissionUsageData es falso, el campo impersonationPermissionUsage está vacío.

    • impersonationPolicy: información sobre la vinculación de función que otorga permisos de robo de identidad a la cuenta de servicio.
    • impersonator: Detalles sobre la cuenta de servicio que tiene permiso para actuar en nombre de las cuentas de servicio de tu proyecto, incluidas las siguientes:
      • isGoogleManaged: Indica si la cuenta de servicio es propiedad de Google y se encuentra bajo su administración.
      • serviceAccount: Es la dirección de correo electrónico de la cuenta de servicio.
      • serviceAccountOwner: Es el proyecto que posee la cuenta de servicio. Si Google es propietario de la cuenta de servicio, el valor de este campo es Google managed. Si un proyecto fuera de tu organización es propietario de la cuenta de servicio, el valor de este campo es Unknown to your org.
    • targetServiceAccounts: una lista de las cuentas de servicio a las que la cuenta de servicio en el campo impersonator tiene permiso para actuar en nombre de una cuenta. Si el ladrón de identidad puede robar la identidad de más de 1,500 cuentas de servicio, la lista está vacía. Para saber a cuántas cuentas de servicio puede suplantar el ladrón de identidad, consulta el campo description.
  • description: Un resumen legible de la estadística
  • etag: un identificador único para el estado actual de una estadística. Cada vez que se modifica la estadística, se asigna un valor etag nuevo

    Para cambiar el estado de una estadística, debes proporcionar la etag de la estadística existente. Usar etag ayuda a garantizar que cualquier operación se realice solo si la estadística no cambió desde la última recuperación.

  • insightSubtype: el subtipo de estadística.
  • lastRefreshTime: La fecha en la que se actualizó la estadística por última vez, lo que indica la actualidad de los datos que se usaron para generar la estadística
  • name: El nombre de la estadística, en el siguiente formato:

    projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    Los marcadores de posición tienen los siguientes valores:

    • PROJECT_ID: El ID del proyecto en el que se generó la estadística.
    • INSIGHT_ID: Un ID único para la estadística
  • observationPeriod: El período hasta llegar a la estadística. Los datos de origen que se usaron para generar la estadística finalizan en lastRefreshTime y comienzan en lastRefreshTime menos observationPeriod
  • severity: la gravedad de la estadística. Todas las estadísticas de movimiento lateral tienen una gravedad de LOW.
  • stateInfo: Las estadísticas atraviesan varias transiciones de estado después de la propuesta:

    • ACTIVE: Se generó la estadística, pero no se realizó ninguna acción o se realizó una acción sin actualizar el estado de la estadística. Las estadísticas activas se actualizan cuando cambian los datos subyacentes.
    • ACCEPTED: Se realizaron acciones en función de la estadística. Se aceptan las estadísticas cuando una recomendación asociada se marcó como CLAIMED, SUCCEEDED o FAILED, o la estadística se aceptó directamente. Cuando una estadística se encuentra en el estado ACCEPTED, el contenido de la estadística no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de su aceptación.
  • targetResources: Es el nombre completo del recurso del proyecto o la cuenta de servicio que contiene la estadística. Por ejemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

REST

Los subtipos determinan el contenido de una estadística. Las estadísticas de movimiento posterior (google.iam.policy.LateralMovementInsight) tienen el subtipo CROSS_PROJECT_IMPERSONATION.

Las estadísticas de CROSS_PROJECT_IMPERSONATION tienen los siguientes componentes (en cualquier orden):

  • associatedRecommendations: Los identificadores de cualquier recomendación asociada con la estadística. Si no hay recomendaciones asociadas con la estadística, este campo estará vacío.
  • category: La categoría de las estadísticas de IAM siempre es SECURITY.
  • content: informa los detalles de la capacidad de la cuenta de servicio para actuar en nombre de cuentas de servicio en otros proyectos. En este campo, se encuentran los siguientes componentes:

    • hasPermissionUsageData: un valor booleano que indica si hay datos de uso de permisos para esta vinculación de función. Los datos de uso de permisos indican si se usaron los permisos en la vinculación de la función. Estos datos no están disponibles para las vinculaciones de funciones condicionales.
    • impersonationPermissionUsage: Es una lista de permisos de robo de identidad y su información de uso. Si se usó un permiso en los últimos {{lmi_permission_usage_period}} días, se considerará usado. De lo contrario, se considerará sin uso.

      Si hasPermissionUsageData es falso, el campo impersonationPermissionUsage está vacío.

    • impersonationPolicy: información sobre la vinculación de función que otorga permisos de robo de identidad a la cuenta de servicio.
    • impersonator: Detalles sobre la cuenta de servicio que tiene permiso para actuar en nombre de las cuentas de servicio de tu proyecto, incluidas las siguientes:
      • isGoogleManaged: Indica si la cuenta de servicio es propiedad de Google y se encuentra bajo su administración.
      • serviceAccount: Es la dirección de correo electrónico de la cuenta de servicio.
      • serviceAccountOwner: Es el proyecto que posee la cuenta de servicio. Si Google es propietario de la cuenta de servicio, el valor de este campo es Google managed. Si un proyecto fuera de tu organización es propietario de la cuenta de servicio, el valor de este campo es Unknown to your org.
    • targetServiceAccounts: una lista de las cuentas de servicio a las que la cuenta de servicio en el campo impersonator tiene permiso para actuar en nombre de una cuenta. Si el ladrón de identidad puede robar la identidad de más de 1,500 cuentas de servicio, la lista está vacía. Para saber a cuántas cuentas de servicio puede suplantar el ladrón de identidad, consulta el campo description.
  • description: Un resumen legible de la estadística
  • etag: un identificador único para el estado actual de una estadística. Cada vez que se modifica la estadística, se asigna un valor etag nuevo

    Para cambiar el estado de una estadística, debes proporcionar la etag de la estadística existente. Usar etag ayuda a garantizar que cualquier operación se realice solo si la estadística no cambió desde la última recuperación.

  • insightSubtype: el subtipo de estadística.
  • lastRefreshTime: La fecha en la que se actualizó la estadística por última vez, lo que indica la actualidad de los datos que se usaron para generar la estadística
  • name: El nombre de la estadística, en el siguiente formato:

    projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    Los marcadores de posición tienen los siguientes valores:

    • PROJECT_ID: El ID del proyecto en el que se generó la estadística.
    • INSIGHT_ID: Un ID único para la estadística
  • observationPeriod: El período hasta llegar a la estadística. Los datos de origen que se usaron para generar la estadística finalizan en lastRefreshTime y comienzan en lastRefreshTime menos observationPeriod
  • severity: la gravedad de la estadística. Todas las estadísticas de movimiento lateral tienen una gravedad de LOW.
  • stateInfo: Las estadísticas atraviesan varias transiciones de estado después de la propuesta:

    • ACTIVE: Se generó la estadística, pero no se realizó ninguna acción o se realizó una acción sin actualizar el estado de la estadística. Las estadísticas activas se actualizan cuando cambian los datos subyacentes.
    • ACCEPTED: Se realizaron acciones en función de la estadística. Se aceptan las estadísticas cuando una recomendación asociada se marcó como CLAIMED, SUCCEEDED o FAILED, o la estadística se aceptó directamente. Cuando una estadística se encuentra en el estado ACCEPTED, el contenido de la estadística no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de su aceptación.
  • targetResources: Es el nombre completo del recurso del proyecto o la cuenta de servicio que contiene la estadística. Por ejemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

Marca una estadística de movimiento lateral como ACCEPTED

Si realizas acciones basadas en una estadística activa, puedes marcar esa estadística como ACCEPTED. El estado ACCEPTED le indica a la API de recomendador que realizaste acciones basadas en esta estadística, lo que ayuda a definir mejor las recomendaciones.

Las estadísticas aceptadas se conservan durante 90 días después de que se marcan como ACCEPTED.

Console

Si una estadística está asociada con una recomendación, aplicar la recomendación cambia el estado de la estadística a ACCEPTED.

Para marcar una estadística como ACCEPTED sin aplicar una recomendación, usa la CLI de gcloud o la API de REST.

gcloud

Usa el comando gcloud recommender insights mark-accepted con tu ID de estadística para marcarla como ACCEPTED.

  • INSIGHT_ID: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas en el proyecto.
  • PROJECT_ID: El ID del proyecto para el que deseas administrar las estadísticas
  • ETAG: Un identificador para una versión de la estadística. Para obtener la etag, haz lo siguiente:

    1. Obtén la estadística mediante el comando gcloud recommender insights describe.
    2. Busca y copia el valor etag del resultado, incluidas las comillas delimitantes. Por ejemplo, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global \
    --etag=ETAG

En el resultado, se muestra la estadística, ahora con el estado 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 obtener más información sobre el estado de una estadística, consulta Revisa las estadísticas de movimiento lateral en esta página.

REST

Mediante el método insights.markAccepted de la API de recomendador, se marca una estadística como ACCEPTED.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID del proyecto para el que deseas administrar las estadísticas.
  • INSIGHT_ID: El ID de la estadística que deseas ver. Si no conoces el ID de estadística, puedes enumerar las estadísticas en tu proyecto para encontrarlo. El ID de una estadística es todo lo que se encuentra después de insights/ en el campo name de la estadística
  • ETAG: Un identificador para una versión de la estadística. Para obtener la etag, haz lo siguiente:
    1. Obtén la estadística mediante el método insights.get.
    2. Busca y copia el valor etag de la respuesta.

HTTP method and URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID:markAccepted

Cuerpo JSON de la solicitud:

{
  "etag": "ETAG"
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene la estadística, ahora con el 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 obtener más información sobre el estado de una estadística, consulta Revisa las estadísticas de movimiento lateral en esta página.

¿Qué sigue?