Buscar cuentas de servicio con permisos de movimiento lateral

En esta página se explica cómo gestionar las estadísticas de movimientos laterales, que identifican los roles que permiten que una cuenta de servicio de un proyecto suplante la identidad de una cuenta de servicio de otro proyecto. Para obtener más información sobre las estadísticas de movimientos laterales, consulta Cómo se generan las estadísticas de movimientos laterales.

En ocasiones, las estadísticas de movimientos laterales están vinculadas a recomendaciones de roles. Las recomendaciones de roles sugieren acciones que puedes llevar a cabo para solucionar los problemas identificados por las estadísticas de movimientos laterales.

Antes de empezar

Roles obligatorios

Para obtener los permisos que necesitas para gestionar las estadísticas de movimientos laterales, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto, la carpeta o la organización para los que quieras gestionar las estadísticas:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para gestionar las estadísticas de movimientos laterales. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para gestionar la información valiosa sobre movimientos laterales, se necesitan los siguientes permisos:

  • Para ver las estadísticas de movimiento lateral, sigue estos pasos:
    • recommender.iamPolicyLateralMovementInsights.get
    • recommender.iamPolicyLateralMovementInsights.list
  • Para modificar las estadísticas de movimientos laterales, sigue estos pasos: recommender.iamPolicyLateralMovementInsights.update

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

Listar estadísticas de movimientos laterales

Para enumerar todas las estadísticas de movimientos laterales de tu proyecto, carpeta u organización, usa uno de los siguientes métodos:

Consola

  1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

    Ir a IAM

  2. Selecciona un proyecto, una carpeta o una organización.

La columna Estadísticas de seguridad muestra todas las estadísticas relacionadas con la seguridad de tu proyecto, incluidas las estadísticas de movimiento lateral. Las estadísticas de movimiento lateral tienen el formato N service account impersonations, donde N es el número de cuentas de servicio cuya identidad puede suplantar la cuenta de servicio de la vinculación de roles.

gcloud

Usa el comando gcloud recommender insights list para ver todos los datos de movimiento lateral de tu proyecto, carpeta u organización.

Antes de ejecutar el comando, sustituye los siguientes valores:

  • RESOURCE_TYPE: el tipo de recurso del que quieres obtener estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: ID del proyecto, la carpeta o la organización de los que quieres obtener información valiosa.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

En el resultado se muestran todas las estadísticas de movimientos laterales de tu proyecto, carpeta u organización. 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 Recommender muestra todas las estadísticas de movimientos laterales de tu proyecto, carpeta u organización.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • RESOURCE_TYPE: el tipo de recurso del que quieres obtener estadísticas. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: ID del proyecto, la carpeta o la organización de los que quieres obtener información valiosa.
  • PROJECT_ID: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, como my-project.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

La respuesta muestra todas las estadísticas de movimientos laterales de tu proyecto, carpeta u organización. 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 la sección Revisar estadísticas de movimientos laterales de esta página.

Obtener una sola estadística de movimiento lateral

Para obtener más información sobre una estadística concreta, como su descripción, su estado y las recomendaciones asociadas, utilice uno de los siguientes métodos:

Consola

  1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

    Ir a IAM

  2. Selecciona un proyecto, una carpeta o una organización.
  3. En la columna Información valiosa sobre seguridad, haz clic en una de las opciones de movimientos laterales. Las estadísticas de movimientos laterales tienen el formato N service account impersonations, donde N es el número de cuentas de servicio cuya identidad puede suplantar la cuenta de servicio del enlace de rol.

La Google Cloud consola abre un panel con los detalles de la estadística.

gcloud

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

  • INSIGHT_ID: ID de la estadística que quieres ver. Para encontrar el ID, consulta la lista de estadísticas de tu proyecto, carpeta u organización.
  • RESOURCE_TYPE: el tipo de recurso del que quieres gestionar las estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: ID del proyecto, carpeta u organización de los que quieres gestionar las estadísticas.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

El resultado muestra la estadística detallada. Por ejemplo, la siguiente información indica que la política de gestión de identidades y accesos del proyecto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com suplante la identidad 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 la sección Revisar estadísticas de movimientos laterales de esta página.

REST

El método insights.get de la API Recommender obtiene una sola estadística.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • RESOURCE_TYPE: el tipo de recurso del que quieres gestionar las estadísticas. Usa el valor projects, folders, o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de los que quieras gestionar las estadísticas.
  • INSIGHT_ID: el ID de la estadística que quieres ver. Si no conoces el ID de la estadística, puedes encontrarlo consultando la lista de estadísticas de tu proyecto, carpeta u organización. El ID de una estadística es todo lo que hay después de insights/ en el campo name de la estadística.
  • PROJECT_ID: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, como my-project.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

La respuesta contiene la estadística. Por ejemplo, la siguiente información indica que la política de gestión de identidades y accesos del proyecto 123456789012 permite que sa-1@another-project.iam.gserviceaccount.com suplante la identidad 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 la sección Revisar estadísticas de movimientos laterales de esta página.

Consultar estadísticas de movimientos laterales

Una vez que obtengas una estadística, puedes revisar su contenido para comprender el patrón de uso de recursos que destaca.

Consola

Cuando haces clic en una estadística de movimiento lateral en la Google Cloud consola, la Google Cloud consola abre un panel con los detalles de la estadística. La apariencia de estos detalles depende de si la estadística está asociada a una recomendación.

Si la estadística está asociada a una recomendación, en el panel se muestran los detalles de la recomendación.

Si la estadística no está asociada a ninguna recomendación, en el panel se 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 suplantación.

  • Cuentas de servicio que se pueden suplantar en este proyecto. Lista de todas las cuentas de servicio del proyecto actual que puede suplantar la cuenta de servicio con permisos de suplantación de identidad.

  • Permisos que permiten la suplantación de identidad en el proyecto: lista de los permisos de suplantación de identidad que tiene la cuenta de servicio.

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

gcloud

El contenido de una estadística se determina en función de sus subtipos. Las estadísticas de movimientos laterales (google.iam.policy.LateralMovementInsight) tienen el subtipo CROSS_PROJECT_IMPERSONATION.

Las estadísticas de CROSS_PROJECT_IMPERSONATION tienen los siguientes componentes, no necesariamente en este orden:

  • associatedRecommendations: los identificadores de las recomendaciones asociadas a la estadística. Si no hay recomendaciones asociadas a la estadística, este campo estará vacío.
  • category: La categoría de las estadísticas de gestión de identidades y accesos siempre es SECURITY.
  • content: informa de los detalles de la capacidad de la cuenta de servicio para suplantar la identidad de cuentas de servicio de otros proyectos. Este campo contiene los siguientes componentes:

    • hasPermissionUsageData: valor booleano que indica si hay datos de uso de permisos para este enlace de rol. Los datos de uso de permisos indican si se han usado los permisos del enlace de rol. Estos datos no están disponibles para las vinculaciones de roles condicionales.
    • impersonationPermissionUsage: lista de permisos de suplantación y su información de uso. Si se ha usado un permiso en los últimos 90 días, se considera que se ha usado. Si no es así, se considera que no se usa.

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

    • impersonationPolicy: información sobre el enlace de rol que otorga permisos de suplantación de identidad a la cuenta de servicio.
    • impersonator: detalles sobre la cuenta de servicio que tiene permiso para suplantar cuentas de servicio de tu proyecto, incluidos los siguientes:
      • isGoogleManaged: indica si la cuenta de servicio es propiedad de Google y si Google la gestiona.
      • serviceAccount: la dirección de correo de la cuenta de servicio.
      • serviceAccountOwner: el proyecto propietario de la cuenta de servicio. Si Google es el propietario de la cuenta de servicio, el valor de este campo es Google managed. Si un proyecto ajeno a tu organización es el propietario de la cuenta de servicio, el valor de este campo es Unknown to your org.
    • targetServiceAccounts: lista de las cuentas de servicio cuya identidad puede usar la cuenta de servicio del campo impersonator. Si el suplantador puede suplantar la identidad de más de 1500 cuentas de servicio, la lista estará vacía. Para saber cuántas cuentas de servicio puede suplantar el suplantador, consulta el campo description.
  • description: resumen de la estadística legible por humanos.
  • etag: identificador único del estado actual de una estadística. Cada vez que cambia la estadística, se asigna un nuevo valor etag.

    Para cambiar el estado de una estadística, debe proporcionar el etag de la estadística en cuestión. El uso de etag ayuda a asegurarse de que las operaciones solo se realicen si la estadística no ha cambiado desde la última vez que la recuperaste.

  • insightSubtype: el subtipo de estadística.
  • lastRefreshTime: fecha de la última actualización de la estadística, que indica la actualización de los datos utilizados para generarla.
  • name: el nombre de la estadística, con el siguiente formato:

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

    Los marcadores de posición tienen los siguientes valores:

    • RESOURCE_TYPE: el tipo de recurso para el que se ha generado la estadística.
    • RESOURCE_ID: ID del proyecto, la carpeta o la organización en los que se ha generado la estadística.
    • INSIGHT_ID: ID único de la estadística.
  • observationPeriod: el periodo previo a la estadística. Los datos de origen que se han usado para generar la estadística terminan el lastRefreshTime y empiezan el lastRefreshTime menos observationPeriod.
  • severity: la gravedad de la estadística. Todos los datos de movimientos laterales tienen una gravedad de LOW.
  • stateInfo: las estadísticas pasan por varias transiciones de estado después de que se proponen:

    • ACTIVE: Se ha generado la estadística, pero no se ha tomado ninguna medida o se ha tomado una medida sin actualizar el estado de la estadística. Los estadísticas activos se actualizan cuando cambian los datos subyacentes.
    • ACCEPTED: se ha tomado alguna medida en función de la estadística. Las estadísticas se aceptan cuando una recomendación asociada se marca como CLAIMED, SUCCEEDED o FAILED, o bien cuando se aceptan directamente. Cuando una estadística está en el estado ACCEPTED, su contenido no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de aceptarse.
  • targetResources: El nombre completo del recurso de la organización, la carpeta, el proyecto o la cuenta de servicio para la que se genera la estadística. Por ejemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

REST

El contenido de una estadística se determina en función de sus subtipos. Las estadísticas de movimientos laterales (google.iam.policy.LateralMovementInsight) tienen el subtipo CROSS_PROJECT_IMPERSONATION.

Las estadísticas de CROSS_PROJECT_IMPERSONATION tienen los siguientes componentes, no necesariamente en este orden:

  • associatedRecommendations: los identificadores de las recomendaciones asociadas a la estadística. Si no hay recomendaciones asociadas a la estadística, este campo estará vacío.
  • category: La categoría de las estadísticas de gestión de identidades y accesos siempre es SECURITY.
  • content: informa de los detalles de la capacidad de la cuenta de servicio para suplantar la identidad de cuentas de servicio de otros proyectos. Este campo contiene los siguientes componentes:

    • hasPermissionUsageData: valor booleano que indica si hay datos de uso de permisos para este enlace de rol. Los datos de uso de permisos indican si se han usado los permisos del enlace de rol. Estos datos no están disponibles para las vinculaciones de roles condicionales.
    • impersonationPermissionUsage: lista de permisos de suplantación y su información de uso. Si se ha usado un permiso en los últimos 90 días, se considera que se ha usado. Si no es así, se considera que no se usa.

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

    • impersonationPolicy: información sobre el enlace de rol que otorga permisos de suplantación de identidad a la cuenta de servicio.
    • impersonator: detalles sobre la cuenta de servicio que tiene permiso para suplantar cuentas de servicio de tu proyecto, incluidos los siguientes:
      • isGoogleManaged: indica si la cuenta de servicio es propiedad de Google y si Google la gestiona.
      • serviceAccount: la dirección de correo de la cuenta de servicio.
      • serviceAccountOwner: el proyecto propietario de la cuenta de servicio. Si Google es el propietario de la cuenta de servicio, el valor de este campo es Google managed. Si un proyecto ajeno a tu organización es el propietario de la cuenta de servicio, el valor de este campo es Unknown to your org.
    • targetServiceAccounts: lista de las cuentas de servicio cuya identidad puede usar la cuenta de servicio del campo impersonator. Si el suplantador puede suplantar la identidad de más de 1500 cuentas de servicio, la lista estará vacía. Para saber cuántas cuentas de servicio puede suplantar el suplantador, consulta el campo description.
  • description: resumen de la estadística legible por humanos.
  • etag: identificador único del estado actual de una estadística. Cada vez que cambia la estadística, se asigna un nuevo valor etag.

    Para cambiar el estado de una estadística, debe proporcionar el etag de la estadística en cuestión. El uso de etag ayuda a asegurarse de que las operaciones solo se realicen si la estadística no ha cambiado desde la última vez que la recuperaste.

  • insightSubtype: el subtipo de estadística.
  • lastRefreshTime: fecha de la última actualización de la estadística, que indica la actualización de los datos utilizados para generarla.
  • name: el nombre de la estadística, con el siguiente formato:

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

    Los marcadores de posición tienen los siguientes valores:

    • RESOURCE_TYPE: el tipo de recurso para el que se ha generado la estadística.
    • RESOURCE_ID: ID del proyecto, la carpeta o la organización en los que se ha generado la estadística.
    • INSIGHT_ID: ID único de la estadística.
  • observationPeriod: el periodo previo a la estadística. Los datos de origen que se han usado para generar la estadística terminan el lastRefreshTime y empiezan el lastRefreshTime menos observationPeriod.
  • severity: la gravedad de la estadística. Todos los datos de movimientos laterales tienen una gravedad de LOW.
  • stateInfo: las estadísticas pasan por varias transiciones de estado después de que se proponen:

    • ACTIVE: Se ha generado la estadística, pero no se ha tomado ninguna medida o se ha tomado una medida sin actualizar el estado de la estadística. Los estadísticas activos se actualizan cuando cambian los datos subyacentes.
    • ACCEPTED: se ha tomado alguna medida en función de la estadística. Las estadísticas se aceptan cuando una recomendación asociada se marca como CLAIMED, SUCCEEDED o FAILED, o bien cuando se aceptan directamente. Cuando una estadística está en el estado ACCEPTED, su contenido no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de aceptarse.
  • targetResources: El nombre completo del recurso de la organización, la carpeta, el proyecto o la cuenta de servicio para la que se genera la estadística. Por ejemplo, //cloudresourcemanager.googleapis.com/projects/123456789012.

Marcar una estadística de movimiento lateral como ACCEPTED

Si tomas medidas basándote en una estadística activa, puedes marcarla como ACCEPTED. El estado ACCEPTED indica a la API Recommender que has tomado medidas en función de esta información valiosa, lo que ayuda a mejorar tus recomendaciones.

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

Consola

Si una estadística está asociada a 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 REST.

gcloud

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

  • INSIGHT_ID: ID de la estadística que quieres ver. Para encontrar el ID, consulta la lista de estadísticas de tu proyecto, carpeta u organización.
  • RESOURCE_TYPE: el tipo de recurso del que quieres gestionar las estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: ID del proyecto, carpeta u organización de los que quieres gestionar las estadísticas.
  • ETAG: identificador de una versión de la estadística. Para obtener el etag, haz lo siguiente:

    1. Obtén la información valiosa con el comando gcloud recommender insights describe.
    2. Busca y copia el valor de etag en el resultado, incluidas las comillas. Por ejemplo, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global \
    --etag=ETAG

El resultado 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 Revisar estadísticas de movimientos laterales en esta página.

REST

El método insights.markAccepted de la API Recommender marca una estadística como ACCEPTED.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • RESOURCE_TYPE: el tipo de recurso del que quieres gestionar las estadísticas. Usa el valor projects, folders, o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de los que quieras gestionar las estadísticas.
  • INSIGHT_ID: el ID de la estadística que quieres ver. Si no conoces el ID de la estadística, puedes encontrarlo consultando la lista de estadísticas de tu proyecto, carpeta u organización. El ID de una estadística es todo lo que hay después de insights/ en el campo name de la estadística.
  • ETAG: identificador de una versión de la estadística. Para obtener el etag, haz lo siguiente:
    1. Obtén la información valiosa con el método insights.get.
    2. Busca y copia el valor etag de la respuesta.
  • PROJECT_ID: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, como my-project.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "etag": "ETAG"
}

Para enviar tu solicitud, despliega 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 Revisar estadísticas de movimientos laterales en esta página.

Siguientes pasos