Revisar y aplicar recomendaciones de políticas de la organización

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

Antes de empezar

  • 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 REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

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

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

  • Consulta las recomendaciones de políticas de organización.

Roles de gestión de identidades y accesos necesarios

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

Para obtener los permisos que necesitas para gestionar las recomendaciones de políticas de organización, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el recurso para el que quieras gestionar las recomendaciones (proyecto, carpeta u organización):

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

Permisos obligatorios

Para gestionar las recomendaciones de políticas de la organización, se necesitan los siguientes permisos:

  • Para ver las recomendaciones de políticas de la organización, siga estos pasos:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
  • Para aplicar y rechazar recomendaciones de políticas de la organización, sigue estos pasos:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
    • recommender.orgPolicyRecommendations.update
  • Para gestionar las políticas de la organización, sigue estos pasos:
    • 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 u otros roles predefinidos.

Limitaciones

La vista previa de Recommender de políticas de 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 hacen para las restricciones que no estén configuradas en un recurso determinado o en ninguno de sus recursos secundarios.

Restricciones admitidas

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

Revisar y aplicar recomendaciones

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

gcloud

Revisa tus recomendaciones:

Para ver una lista de 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

Sustituye los siguientes valores:

  • RESOURCE_TYPE: el tipo de recurso del que quieres obtener recomendaciones. Usa el valor project, folder o organization.

  • RESOURCE_ID: el ID del Google Cloud proyecto, la carpeta o la organización de los que quieres obtener una lista de recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.

  • RECOMMENDER_SUBTYPE: opcional. ID del subtipo del que quieres ver recomendaciones. Entre los subtipos válidos se incluyen los siguientes:

    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION ofrece 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 siguiente ejemplo. En este ejemplo, se analizan dos recursos en busca de claves de cuentas de servicio externas y no se detecta ninguna infracción. Por lo tanto, te recomendamos que definas el valor de iam.managed.disableServiceAccountKeyCreation para evitar futuras infracciones.

[
  {
    "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 el artículo Información sobre 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 impide 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
    

    Sustituye los siguientes valores:

    • RECOMMENDATION_ID: identificador único de la recomendación. Este valor aparece al final del campo name de la recomendación. En el ejemplo anterior, el identificador es fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor project, folder o organization.
    • RESOURCE_ID: ID del proyecto, la carpeta o la organización de Google Cloud para los que quieres obtener recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
    • FORMAT: el formato de la respuesta. Usa el valor json o yaml.
    • ETAG: identificador de 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 los metadatos que elijas sobre la recomendación. Por ejemplo, --state-metadata=reviewedBy=alice,priority=high. Los metadatos sustituyen al campo stateInfo.stateMetadata de la recomendación.

    Si el comando se ejecuta correctamente, la respuesta muestra la recomendación en 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 organización del proyecto, la carpeta o la organización especificados por RESOURCE_TYPE y RESOURCE_ID para que refleje la recomendación.

  3. Actualiza el estado de la recomendación a SUCCEEDED si has podido aplicarla o a FAILED si no has podido hacerlo:

    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
    

    Sustituye los siguientes valores:

    • COMMAND: usa mark-succeeded si has aplicado la recomendación correctamente o mark-failed si no has podido aplicarla.
    • RECOMMENDATION_ID: identificador único de la recomendación. Este valor aparece al final del campo name de la recomendación. En el ejemplo anterior, el identificador es fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor project, folder o organization.
    • RESOURCE_ID: ID del proyecto, la carpeta o la organización de Google Cloud para los que quieres obtener recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
    • FORMAT: el formato de la respuesta. Usa el valor json o yaml.
    • ETAG: identificador de 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 los metadatos que elijas sobre la recomendación. Por ejemplo, --state-metadata=reviewedBy=alice,priority=high. Los metadatos sustituyen al campo stateInfo.stateMetadata de la recomendación.

    Por ejemplo, si has marcado la recomendación como aplicada correctamente, la respuesta mostrará la recomendación en el 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 tus recomendaciones:

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

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

  • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor projects, folders o organizations.
  • RESOURCE_ID: el ID delGoogle Cloud proyecto, la carpeta o la organización para los que quieres gestionar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
  • PAGE_SIZE: opcional. Número máximo de resultados que se devolverán en esta solicitud. Si no se especifica, el servidor determinará el número de resultados que se devolverán. Si el número de recomendaciones es superior al tamaño de la página, la respuesta contiene un token de paginación que puedes usar para obtener la siguiente página de resultados.
  • PAGE_TOKEN: opcional. El token de paginación devuelto en una respuesta anterior de este método. Si se especifica, la lista de recomendaciones empezará donde terminó la solicitud anterior.
  • FILTER: opcional. Una expresión de filtro para restringir las recomendaciones devueltas. Puede filtrar las recomendaciones en función del campo stateInfo.state. Por ejemplo, stateInfo.state:"DISMISSED" o stateInfo.state:"FAILED".
  • 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/recommenders/google.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Para enviar tu solicitud, despliega una de estas opciones:

La respuesta es similar al siguiente ejemplo. En este ejemplo, se analizan dos recursos en busca de claves de cuentas de servicio externas y no se detecta ninguna infracción. Por lo tanto, te recomendamos que definas el valor de iam.managed.disableServiceAccountKeyCreation para evitar futuras infracciones.

[
  {
    "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 el artículo Información sobre 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 impide que cambie mientras la aplicas, usa el método recommendations.markClaimed de la API Recommender.

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

    • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: el ID delGoogle Cloud proyecto, la carpeta o la organización para los que quieres gestionar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
    • RECOMMENDATION_ID: identificador único de la recomendación. Este valor aparece al final del campo name de 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: valor del campo etag de la recomendación, como "dd0686e7136a4cbb". Usa barras invertidas para escapar las comillas. Por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Objeto que contiene pares clave-valor con los metadatos que elijas sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos sustituyen al campo stateInfo.stateMetadata de la recomendación.
    • 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    Cuerpo JSON de la solicitud:

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

    Para enviar tu solicitud, despliega una de estas opciones:

    La respuesta muestra la recomendación en 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 organización del proyecto, la carpeta o la organización especificados por RESOURCE_TYPE y RESOURCE_ID para que refleje la recomendación.

  3. Actualiza el estado de la recomendación a SUCCEEDED si la has aplicado correctamente o a FAILED si no has podido aplicarla:

    SUCCEEDED

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

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

    • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: el ID delGoogle Cloud proyecto, la carpeta o la organización para los que quieres gestionar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
    • RECOMMENDATION_ID: identificador único de la recomendación. Este valor aparece al final del campo name de 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: valor del campo etag de la recomendación, como "dd0686e7136a4cbb". Usa barras invertidas para escapar las comillas. Por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Objeto que contiene pares clave-valor con los metadatos que elijas sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos sustituyen al campo stateInfo.stateMetadata de la recomendación.
    • 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    Cuerpo JSON de la solicitud:

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

    Para enviar tu solicitud, despliega una de estas opciones:

    La respuesta muestra la recomendación en 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 has podido aplicarla, usa el método recommendations.markFailed de la API Recommender.

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

    • RESOURCE_TYPE: el tipo de recurso para el que quieres gestionar las recomendaciones. Usa el valor projects, folders o organizations.
    • RESOURCE_ID: el ID delGoogle Cloud proyecto, la carpeta o la organización para los que quieres gestionar las recomendaciones. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
    • RECOMMENDATION_ID: identificador único de la recomendación. Este valor aparece al final del campo name de 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: valor del campo etag de la recomendación, como "dd0686e7136a4cbb". Usa barras invertidas para escapar las comillas. Por ejemplo, "\"df7308cca9719dcc\"".
    • STATE_METADATA: opcional. Objeto que contiene pares clave-valor con los metadatos que elijas sobre la recomendación. Por ejemplo, {"reviewedBy": "alice", "priority": "high"}. Los metadatos sustituyen al campo stateInfo.stateMetadata de la recomendación.
    • 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/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    Cuerpo JSON de la solicitud:

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

    Para enviar tu solicitud, despliega una de estas opciones:

    La respuesta muestra la recomendación en 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 que te ayuda a entender por qué se ha hecho y sugerencias para cambiar la configuración de la política de tu organización. Entre sus atributos principales se incluyen los siguientes:

  • description: resumen de la recomendación legible por humanos.

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

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

    • overview: información general resumida sobre la recomendación.

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

    • enforced_resources: proporciona información sobre los recursos a los que afecta esta política de la organización si aplicas la recomendación.

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

  • associatedInsights: el nombre del recurso de las estadísticas que han llevado 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 una de las políticas de organización admitidas definida o para ninguno de sus recursos secundarios. Para ver la configuración de la política de organización en la que se basa esta recomendación, consulta las estadísticas de la política de organización asociadas a la recomendación. Estas estadísticas se indican en el campo associatedInsights. Para ver una estadística de la política de la organización asociada a 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 las 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 hay después de insights/ en el campo insight. Por ejemplo, si el campo de la estadística es 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 la política de la organización con el ID que has copiado.

Exportar recomendaciones a BigQuery

Para ver las estadísticas diarias de todas las recomendaciones de tu organización, incluidas las recomendaciones de políticas de la organización, puedes exportarlas a BigQuery.

Para exportar sus recomendaciones a BigQuery, debe configurar una transferencia de datos mediante BigQuery Data Transfer Service. Para saber cómo configurar una transferencia de datos, consulta el artículo Exportar recomendaciones a BigQuery.

Siguientes pasos