Revisa y aplica las recomendaciones de las políticas de la organización

En esta página, se explica cómo ver, comprender y aplicar las recomendaciones de políticas de la organización. Las recomendaciones de políticas de la organización te ayudan a establecer las políticas de la organización adecuadas sin interrumpir los sistemas.

Antes de comenzar

  • Enable the Organization Policy and Recommender APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • Configura la autenticación.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a gcloud CLI.

      Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

  • Comprende las recomendaciones de políticas de la organización.

Roles de IAM obligatorios

En esta sección, se describen los roles y los permisos de IAM que necesitas para trabajar con las recomendaciones de políticas de la organización.

Para obtener los permisos que necesitas para administrar las recomendaciones de políticas de la organización, pídele a tu administrador que te otorgue los siguientes roles de IAM en el recurso para el que deseas administrar las recomendaciones (proyecto, carpeta u organización):

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 recomendaciones de políticas de la organización. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para administrar las recomendaciones de políticas de la organización:

  • Para ver las recomendaciones de políticas de la organización, haz lo siguiente:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
  • Para aplicar y descartar recomendaciones de políticas de la organización, haz lo siguiente:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
    • recommender.orgPolicyRecommendations.update
  • Para administrar las políticas de la organización, haz lo siguiente:
    • orgpolicy.policy.get
    • orgpolicy.policy.set
    • orgpolicy.constraints.list
    • orgpolicy.policies.create
    • orgpolicy.policies.delete
    • orgpolicy.policies.list
    • orgpolicy.policies.update

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

Limitaciones

La vista previa del Recomendador de políticas de la organización tiene las siguientes limitaciones:

  • Las estadísticas solo están disponibles para los proyectos, las carpetas y las organizaciones que tienen recomendaciones.

  • Las recomendaciones solo se realizan para las restricciones que no están configuradas en un recurso determinado o en cualquiera de sus recursos secundarios.

Restricciones admitidas

Las recomendaciones solo están disponibles para las siguientes restricciones de políticas de la organización:

Revisa y aplica recomendaciones

Puedes revisar y aplicar recomendaciones de políticas de la organización con Google Cloud CLI y la API del recomendador.

gcloud

Revisa las recomendaciones:

Para enumerar tus recomendaciones, ejecuta el comando gcloud recommender recommendations list:

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.orgpolicy.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --filter="recommenderSubtype:RECOMMENDER_SUBTYPE" \
    --format=FORMAT

Reemplaza los siguientes valores:

  • RESOURCE_TYPE: el tipo de recurso para el que deseas enumerar las recomendaciones. Usa el valor project, folder o organization.

  • RESOURCE_ID: Es el ID del Google Cloud proyecto, la carpeta o la organización para el que deseas enumerar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.

  • RECOMMENDER_SUBTYPE: Opcional Es el ID del subtipo para el que deseas ver recomendaciones. Los subtipos válidos incluyen los siguientes:

    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION proporciona recomendaciones para la restricción iam.managed.disableServiceAccountKeyCreation.
    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_UPLOAD proporciona recomendaciones para la restricción iam.managed.disableServiceAccountKeyUpload
  • FORMAT: El formato de la respuesta. Usa el valor json o yaml.

La respuesta es similar al ejemplo a continuación. En este ejemplo, se analizan dos recursos en busca de claves de cuentas de servicio externas y no se detectan incumplimientos. Como resultado, la recomendación sugiere establecer el parámetro iam.managed.disableServiceAccountKeyCreation para evitar incumplimientos futuros.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Para obtener más información sobre los componentes de una recomendación, consulta Cómo comprender las recomendaciones.

Para aplicar una recomendación, sigue estos pasos:

  1. Usa el comando gcloud recommender recommendations mark-claimed para cambiar el estado de la recomendación a CLAIMED, lo que evita que la recomendación cambie mientras la aplicas:

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.orgpolicy.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Reemplaza los siguientes valores:

    • RECOMMENDATION_ID: El identificador único de la recomendación. Este valor aparece al final del campo name en la recomendación. En el ejemplo anterior, el identificador es fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor project, folder o organization.
    • RESOURCE_ID: Es el ID del proyecto, la carpeta o la organización de Google Cloudpara el que deseas enumerar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
    • FORMAT: El formato de la respuesta. Usa el valor json o yaml.
    • ETAG: Es un identificador para una versión de la recomendación, como "7caf4103d7669e12". Ten en cuenta que este valor puede incluir comillas.
    • STATE_METADATA: Opcional Pares clave-valor separados por comas que contienen la selección de metadatos sobre la recomendación. Por ejemplo:--state-metadata=reviewedBy=alice,priority=high Los metadatos reemplazan el campo stateInfo.stateMetadata en la recomendación.

    Si el comando se ejecuta de forma correcta, la respuesta muestra la recomendación en un estado CLAIMED, como se muestra en el siguiente ejemplo. Para mayor claridad, en el ejemplo, se omiten la mayoría de los campos:

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {\
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    
  2. Actualiza y aplica la política de la organización para el proyecto, la carpeta o la organización especificados por RESOURCE_TYPE y RESOURCE_ID de modo que refleje la recomendación.

  3. Actualiza el estado de la recomendación a SUCCEEDED si pudiste aplicar la recomendación, o FAILED si no pudiste aplicarla:

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Reemplaza los siguientes valores:

    • COMMAND: Usa mark-succeeded si aplicaste la recomendación correctamente o mark-failed si no pudiste aplicarla.
    • RECOMMENDATION_ID: El identificador único de la recomendación. Este valor aparece al final del campo name en la recomendación. En el ejemplo anterior, el identificador es fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor project, folder o organization.
    • RESOURCE_ID: Es el ID del proyecto, la carpeta o la organización de Google Cloudpara el que deseas enumerar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
    • FORMAT: El formato de la respuesta. Usa el valor json o yaml.
    • ETAG: Es un identificador para una versión de la recomendación, como "7caf4103d7669e12". Ten en cuenta que este valor puede incluir comillas.
    • STATE_METADATA: Opcional Pares clave-valor separados por comas que contienen la selección de metadatos sobre la recomendación. Por ejemplo:--state-metadata=reviewedBy=alice,priority=high Los metadatos reemplazan el campo stateInfo.stateMetadata en la recomendación.

    Por ejemplo, si marcaste la recomendación como correcta, la respuesta muestra la recomendación en un estado SUCCEEDED. Para mayor claridad, en este ejemplo, se omiten la mayoría de los campos:

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    

    Para revertir los cambios en la política de la organización, establece la política de la organización en su configuración original, que se proporciona en el campo configuredPolicy de la estadística asociada.

REST

Revisa las recomendaciones:

Para enumerar todas las recomendaciones disponibles para tu proyecto, carpeta u organización, usa el método recommendations.list de la API de Recommender.

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

  • RESOURCE_TYPE: Es el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: Es el ID delGoogle Cloud proyecto, la carpeta o la organización para el que deseas administrar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • PAGE_SIZE: Opcional La cantidad máxima de resultados que se mostrarán con esta solicitud. Si no se especifica, el servidor determinará la cantidad de resultados que se mostrarán. Si la cantidad de recomendaciones es mayor que el tamaño de la página, la respuesta contiene un token de paginación que puedes usar para recuperar la siguiente página de resultados.
  • PAGE_TOKEN: Opcional Es el token de paginación que se mostró en una respuesta anterior de este método. Si se especifica, la lista de recomendaciones comenzará donde finalizó la solicitud anterior.
  • FILTER: Opcional Una expresión de filtro para restringir las recomendaciones que se muestran. Puedes filtrar recomendaciones según el campo stateInfo.state. Por ejemplo, stateInfo.state:"DISMISSED" o stateInfo.state:"FAILED".
  • PROJECT_ID: El ID de tu proyecto de 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/recommenders/google.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Para enviar tu solicitud, expande una de estas opciones:

La respuesta es similar al ejemplo a continuación. En este ejemplo, se analizan dos recursos en busca de claves de cuentas de servicio externas y no se detectan incumplimientos. Como resultado, la recomendación sugiere establecer el parámetro iam.managed.disableServiceAccountKeyCreation para evitar incumplimientos en el futuro.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Para obtener más información sobre los componentes de una recomendación, consulta Cómo comprender las recomendaciones.

Para aplicar una recomendación, sigue estos pasos:

  1. Marca la recomendación como CLAIMED:

    Para marcar una recomendación como CLAIMED, lo que evita que la recomendación cambie mientras la aplicas, usa el método recommendations.markClaimed de la API de Recommender.

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

    • RESOURCE_TYPE: Es el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: Es el ID delGoogle Cloud proyecto, la carpeta o la organización para el que deseas administrar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
    • RECOMMENDATION_ID: El identificador único de la recomendación. Este valor aparece al final del campo name en la recomendación. Por ejemplo, si el campo name es projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, el ID de recomendación es fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: El valor del campo etag en la recomendación, como "dd0686e7136a4cbb". Usa barras inversas para escapar las comillas, por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: Opcional. Un objeto que contiene pares clave-valor con tu elección de metadatos sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos reemplazan el campo stateInfo.stateMetadata en la recomendación.
    • PROJECT_ID: El ID de tu proyecto de 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    Cuerpo JSON de la solicitud:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    La respuesta muestra la recomendación en un estado CLAIMED, como se muestra en el siguiente ejemplo. Para mayor claridad, en este ejemplo, se omiten la mayoría de los campos:

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

  2. Actualiza la política de la organización para el proyecto, la carpeta o la organización especificados por RESOURCE_TYPE y RESOURCE_ID de modo que refleje la recomendación.

  3. Actualiza el estado de la recomendación a SUCCEEDED si aplicaste la recomendación correctamente o a FAILED si no pudiste aplicarla:

    SUCCEEDED

    Para marcar una recomendación como SUCCEEDED, lo que indica que pudiste aplicarla, usa el método recommendations.markSucceeded de la API de Recommender.

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

    • RESOURCE_TYPE: Es el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: Es el ID delGoogle Cloud proyecto, la carpeta o la organización para el que deseas administrar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
    • RECOMMENDATION_ID: El identificador único de la recomendación. Este valor aparece al final del campo name en la recomendación. Por ejemplo, si el campo name es projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, el ID de recomendación es fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: El valor del campo etag en la recomendación, como "dd0686e7136a4cbb". Usa barras inversas para escapar las comillas, por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: Opcional. Un objeto que contiene pares clave-valor con tu elección de metadatos sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos reemplazan el campo stateInfo.stateMetadata en la recomendación.
    • PROJECT_ID: El ID de tu proyecto de 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    Cuerpo JSON de la solicitud:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    La respuesta muestra la recomendación en un estado SUCCEEDED, como se muestra en el siguiente ejemplo. Para mayor claridad, en este ejemplo, se omiten la mayoría de los campos:

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

    FAILED

    Para marcar una recomendación como FAILED, lo que indica que no pudiste aplicarla, usa el método recommendations.markFailed de la API de Recommender.

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

    • RESOURCE_TYPE: Es el tipo de recurso para el que deseas administrar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: Es el ID delGoogle Cloud proyecto, la carpeta o la organización para el que deseas administrar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
    • RECOMMENDATION_ID: El identificador único de la recomendación. Este valor aparece al final del campo name en la recomendación. Por ejemplo, si el campo name es projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, el ID de recomendación es fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: El valor del campo etag en la recomendación, como "dd0686e7136a4cbb". Usa barras inversas para escapar las comillas, por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: Opcional. Un objeto que contiene pares clave-valor con tu elección de metadatos sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos reemplazan el campo stateInfo.stateMetadata en la recomendación.
    • PROJECT_ID: El ID de tu proyecto de 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    Cuerpo JSON de la solicitud:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    La respuesta muestra la recomendación en un estado FAILED, como se muestra en el siguiente ejemplo. Para mayor claridad, en este ejemplo, se omiten la mayoría de los campos:

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

Información sobre las recomendaciones

Cada recomendación incluye información para ayudarte a comprender por qué se hizo la recomendación y sugerencias para cambiar la configuración de tu política de la organización. Entre sus atributos principales, se incluyen los siguientes:

  • description: Es un resumen de la recomendación legible para las personas.

  • recommenderSubtype: Es el identificador de un subtipo de recomendaciones. Cada restricción tiene un recommenderSubtype único.

  • content: Contiene los cambios recomendados para tu política de la organización.

    • overview: Es la información condensada de la descripción general de la recomendación.

    • constraint: Proporciona información sobre la restricción.

    • enforced_resources: Proporciona información sobre los recursos que se ven afectados por esta política de la organización si aplicas la recomendación.

    • operationGroups: Es un conjunto de una o más operaciones en la política de la organización cuando aplicas una recomendación.

  • associatedInsights: Es el nombre del recurso de las estadísticas que llevaron a esta recomendación.

Para obtener más información sobre los atributos de una recomendación, consulta la referencia de recomendaciones.

Las estadísticas y las recomendaciones se generan para los recursos que no tienen establecida una de las políticas de la organización admitidas o ninguno de sus recursos secundarios. Para ver la configuración de la política de la organización en la que se basa esta recomendación, consulta las estadísticas de políticas de la organización asociadas con la recomendación. Estas estadísticas se enumeran en el campo associatedInsights. Para ver una estadística de política de la organización asociada con la recomendación, haz lo siguiente:

  1. Identifica qué estadísticas del campo associatedInsights son estadísticas de políticas de la organización. Las estadísticas de políticas de la organización tienen el tipo de estadística google.orgpolicy.policy.Insight. Este tipo aparece después de insightTypes en el campo insight.

  2. Copia el ID de la estadística de la política de la organización. El ID es todo lo que se encuentra después de insights/ en el campo insight. Por ejemplo, si el campo de la estadística dice projects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f, el ID de la estadística es fb927dc1-9695-4436-0000-f0f285007c0f.

  3. Sigue las instrucciones para obtener una estadística de política de la organización con el ID de estadística que copiaste.

Exportar recomendaciones a BigQuery

Para ver instantáneas diarias de todas las recomendaciones para tu organización, incluidas las recomendaciones de políticas de la organización, puedes exportar tus recomendaciones a BigQuery.

Para exportar tus recomendaciones a BigQuery, debes configurar una transferencia de datos con el Servicio de transferencia de datos de BigQuery. Para obtener información sobre cómo configurar una transferencia de datos, consulta Exporta recomendaciones a BigQuery.

¿Qué sigue?