Cómo encontrar cuentas de servicio con permisos de movimiento lateral

En esta página, se muestra cómo administrar las estadísticas de movimiento lateral, que identifican los roles que permiten que una cuenta de servicio de un proyecto actúe en nombre de una cuenta de servicio en otro proyecto. 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 se vinculan a las recommendations de roles. Las recomendaciones de roles sugieren acciones que puedes realizar para solucionar los problemas que identifican las estadísticas de movimiento lateral.

Antes de comenzar

Roles obligatorios

Para 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, la carpeta o la organización para los que deseas administrar las estadísticas:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

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

Se requieren los siguientes permisos para administrar las estadísticas de movimientos laterales:

  • 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, organización o carpeta, usa uno de los siguientes métodos:

Console

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

    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 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, carpeta o organización.

Antes de ejecutar el comando, reemplaza los siguientes valores:

  • RESOURCE_TYPE: el tipo de recurso para el que deseas generar una lista de estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización para el que deseas enumerar las estadísticas.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

En el resultado, se enumeran todas las estadísticas de movimiento lateral para tu proyecto, carpeta o 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 de Recommender enumera todas las estadísticas de movimiento lateral para el proyecto, la carpeta o la organización.

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

  • RESOURCE_TYPE: el tipo de recurso para el que deseas generar una lista de estadísticas. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización para el que deseas enumerar las estadísticas.
  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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, expande una de estas opciones:

En la respuesta, se enumeran todas las estadísticas de movimiento lateral del proyecto, la carpeta o la 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 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 de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. Selecciona un proyecto, una carpeta o una organización.
  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 de Google Cloud abrirá 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 para el proyecto, la carpeta o la organización.
  • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización para el que deseas administrar las estadísticas.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_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

Con 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:

  • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las estadísticas. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización 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 encontrarlo si enumeras las estadísticas en el proyecto, la carpeta o la organización. El ID de una estadística es todo lo que se encuentra después de insights/ en el campo name de la estadística
  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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, 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 de Google Cloud, 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 lateral (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 SECURITY y siempre es .
  • 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 la información de uso. Si se usó un permiso en los últimos 90 días, se considera que se usó. De lo contrario, se considerará que no se usó.

      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: Son los detalles sobre la cuenta de servicio que tiene permiso para actuar en nombre de las cuentas de servicio de tu proyecto, incluidos los siguientes:
      • isGoogleManaged: Indica si Google es propietario de la cuenta de servicio y la administra.
      • serviceAccount: Es la dirección de correo electrónico de la cuenta de servicio.
      • serviceAccountOwner: Es el proyecto al que pertenece 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 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:

    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 generó la estadística.
    • RESOURCE_ID: El ID del proyecto, la carpeta o la organización en la 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: El nombre completo del recurso de la organización, la carpeta, el proyecto o la cuenta de servicio para el que se proporciona 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 lateral (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 SECURITY y siempre es .
  • 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 la información de uso. Si se usó un permiso en los últimos 90 días, se considera que se usó. De lo contrario, se considerará que no se usó.

      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: Son los detalles sobre la cuenta de servicio que tiene permiso para actuar en nombre de las cuentas de servicio de tu proyecto, incluidos los siguientes:
      • isGoogleManaged: Indica si Google es propietario de la cuenta de servicio y la administra.
      • serviceAccount: Es la dirección de correo electrónico de la cuenta de servicio.
      • serviceAccountOwner: Es el proyecto al que pertenece 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 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:

    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 generó la estadística.
    • RESOURCE_ID: El ID del proyecto, la carpeta o la organización en la 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: El nombre completo del recurso de la organización, la carpeta, el proyecto o la cuenta de servicio para el que se proporciona 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 el ID de estadística para marcar una estadística como ACCEPTED.

  • INSIGHT_ID: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas para el proyecto, la carpeta o la organización.
  • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las estadísticas. Usa el valor project, folder o organization.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización 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 \
    --RESOURCE_TYPE=RESOURCE_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:

  • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las estadísticas. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización 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 encontrarlo si enumeras las estadísticas en el proyecto, la carpeta o la organización. 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.
  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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, 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?