Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Muestras de consultas

En esta página, se proporcionan consultas de muestra para mostrarte cómo usar los métodos AnalyzeIamPolicy y AnalyzeIamPolicyLongrunning para analizar políticas.

Antes de comenzar

AnalyzeIamPolicy

  1. Configura el entorno.

  2. Para configurar un alias gcurl, sigue estos pasos:

    Si usas una instancia de Compute Engine, ejecuta el siguiente comando.

    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
    

    Si no usas una instancia de Compute Engine, ejecuta el siguiente comando.

    alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
    -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
    

    En este ejemplo, CREDENTIALS es la ruta del archivo de credenciales, como ~/credentials.json.

AnalyzeIamPolicyLongrunning

  1. Configura el entorno.

  2. Para configurar un alias gcurl, sigue estos pasos:

    Si usas una instancia de Compute Engine, ejecuta el siguiente comando.

    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" -X POST'
    

    Si no usas una instancia de Compute Engine, ejecuta el siguiente comando.

    alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
    -H "Content-Type: application/json" -X POST'
    

    En este ejemplo, CREDENTIALS es la ruta del archivo de credenciales, como ~/credentials.json.

Encuentra identidades con funciones o permisos específicos en un recurso específico

Para encontrar identidades a las que se les otorgó el permiso iam.serviceAccounts.actAs o iam.serviceAccounts.get en una cuenta de servicio específica, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --expand-groups \
    --output-group-edges \
    --show-response

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --full-resource-name="//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com" \
    --permissions="iam.serviceAccounts.actAs,iam.serviceAccounts.get" \
    --expand-groups \
    --output-group-edges \
    --show-response

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/ORG_ID",
        "resourceSelector":{
           "fullResourceName":"FULL_RESOURCE_NAME"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs",
              "iam.serviceAccounts.get"
           ]
        },
        "options":{
           "expandGroups":EXPAND_GROUPS,
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES,
           "analyzeServiceAccountImpersonation":ANALYZE_SERVICE_ACCOUNT_IMPERSONATION
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs",
              "iam.serviceAccounts.get"
           ]
          },
        "options":{
           "expandGroups":true,
           "outputGroupEdges":true,
           "outputResourceEdges":false,
           "analyzeServiceAccountImpersonation":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Este método muestra las identidades que aparecen en la política y las que obtienen permisos a través de la membresía del grupo. Para mostrar solo las identidades que aparecen en la política, inhabilita las opciones --expand-groups y --output-group-edges.

Puedes habilitar la opción --output-resource-edges si deseas saber cómo el recurso especificado hereda la política del recurso adjunto de la política. Por ejemplo, supongamos que la política se establece en una carpeta f1. Verás los bordes de recursos f1-to-project1 y project1-to-sa1.

Puedes habilitar la opción --analyze-service-account-impersonation si deseas buscar identidades que puedan acceder indirectamente al recurso especificado mediante el robo de identidad de la cuenta de servicio.

Encuentra identidades con cualquier función o permiso en un recurso específico

Para encontrar identidades a las que se les otorgan funciones o permisos en una cuenta de servicio especificada, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --expand-roles

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --full-resource-name="//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com" \
    --expand-roles

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/ORG_ID",
        "resourceSelector":{
           "fullResourceName":"FULL_RESOURCE_NAME"
        },
        "options":{
           "expandRoles":EXPAND_ROLES,
           "expandGroups":EXPAND_GROUPS,
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES,
           "analyzeServiceAccountImpersonation":ANALYZE_SERVICE_ACCOUNT_IMPERSONATION
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com"
        },
        "options":{
           "expandRoles":true,
           "expandGroups":false,
           "outputGroupEdges":false,
           "outputResourceEdges":false,
           "analyzeServiceAccountImpersonation":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Este método muestra las funciones que aparecen en las políticas y los permisos incluidos en la función adjunta a la política. Para mostrar solo las funciones que aparecen en las políticas, inhabilita la opción --expand-roles.

Puedes habilitar las opciones --expand-groups y --output-group-edges para ver en el resultado las identidades que obtienen permisos mediante la membresía del grupo.

Puedes habilitar la opción --output-resource-edges si deseas saber cómo el recurso especificado hereda la política del recurso adjunto de la política. Por ejemplo, supongamos que la política se establece en una carpeta f1. Verás los bordes de recursos f1-to-project1 y project1-to-sa1.

Puedes habilitar la opción --analyze-service-account-impersonation si deseas buscar identidades que puedan acceder indirectamente al recurso especificado mediante el robo de identidad de la cuenta de servicio.

Encuentra identidades con funciones o permisos específicos en un proyecto

Para encontrar identidades a las que se les otorgó el permiso iam.serviceAccounts.actAs o iam.serviceAccounts.get en alguna cuenta de servicio de un proyecto, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --expand-resources

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --full-resource-name="//cloudresourcemanager.googleapis.com/projects/project1" \
    --permissions="iam.serviceAccounts.actAs" \
    --expand-resources

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/ORG_ID",
        "resourceSelector":{
           "fullResourceName":"FULL_RESOURCE_NAME"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs"
           ]
        },
        "options":{
           "expandResources":EXPAND_RESOURCES
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"//cloudresourcemanager.googleapis.com/projects/project1"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs"
           ]
        },
        "options":{
           "expandResources":true
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Encuentra recursos con funciones o permisos específicos en una identidad específica

Para encontrar recursos a los que se les otorgó el permiso iam.serviceAccounts.actAs o iam.serviceAccounts.get para un usuario específico, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --identity="IDENTITY" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --identity="user:user1@example.com" \
    --permissions="iam.serviceAccounts.actAs,iam.serviceAccounts.get"

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/ORG_ID",
        "identitySelector":{
           "identity":"IDENTITY"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs",
              "iam.serviceAccounts.get"
           ]
        },
        "options":{
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "expandResources":EXPAND_RESOURCES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES,
           "analyzeServiceAccountImpersonation":ANALYZE_SERVICE_ACCOUNT_IMPERSONATION
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "identitySelector":{
           "identity":"user:user1@example.com"
        },
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs",
              "iam.serviceAccounts.get"
           ]
        },
        "options":{
           "outputGroupEdges":false,
           "expandResources":false,
           "outputResourceEdges":false,
           "analyzeServiceAccountImpersonation":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Puedes habilitar las opciones --expand-resources y --output-resource-edges para ver los recursos heredados que tienen el acceso especificado a la identidad especificada.

Puedes habilitar la opción --output-group-edges si deseas saber cómo la identidad especificada hereda el acceso a través de la membresía del grupo. Por ejemplo, supongamos que la política tiene un grupo de miembros g1 con user1 como su miembro; verás el perímetro edge-user1.

Puedes habilitar la opción --analyze-service-account-impersonation si deseas buscar recursos a los que podría acceder de manera indirecta la identidad especificada mediante el robo de identidad de cuentas de servicio.

Encuentra recursos con cualquier función/permiso para una identidad especificada

Para buscar recursos a los que se les otorga una función o permiso para un usuario específico, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --identity="IDENTITY" \
    --expand-roles \
    --expand-resources \
    --output-resource-edges \
    --show-response

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --identity="user:user1@example.com" \
    --expand-roles \
    --expand-resources \
    --output-resource-edges \
    --show-response

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "identitySelector":{
           "identity":"user:user1@example.com"
        },
        "options":{
           "expandRoles":EXPAND_ROLES,
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "expandResources":EXPAND_RESOURCES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES,
           "analyzeServiceAccountImpersonation":ANALYZE_SERVICE_ACCOUNT_IMPERSONATION
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "identitySelector":{
           "identity":"user:user1@example.com"
        },
        "options":{
           "expandRoles":true,
           "outputGroupEdges":false,
           "expandResources":true,
           "outputResourceEdges":true,
           "analyzeServiceAccountImpersonation":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Este método muestra las funciones que aparecen en las políticas y los permisos incluidos en la función adjunta a la política. Para mostrar solo las funciones que aparecen en las políticas, inhabilita la opción --expand-roles.

Este comando muestra los recursos que aparecen en las políticas y los recursos heredados a los que se les otorga acceso a la identidad especificada. Para mostrar solo los recursos que aparecen en las políticas, inhabilita las opciones --expand-resources y --output-resource-edges.

Puedes habilitar la opción --output-group-edges si deseas saber cómo la identidad especificada hereda el acceso a través de la membresía del grupo. Por ejemplo, supongamos que la política tiene un grupo de miembros g1 con user1 como su miembro; verás el perímetro edge-user1.

Puedes habilitar la opción --analyze-service-account-impersonation si deseas buscar recursos a los que podría acceder de manera indirecta la identidad especificada mediante el robo de identidad de cuentas de servicio.

Encuentra funciones o permisos en un recurso específico para una identidad específica

Para encontrar funciones o permisos que se otorgan a un usuario específico en una cuenta de servicio especificada, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --identity="IDENTITY" \
    --expand-roles

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --full-resource-name="//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com" \
    --identity="user:user1@example.com" \
    --expand-roles

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"FULL_RESOURCE_NAME"
        },
        "identitySelector":{
           "identity":"IDENTITY"
        },
        "options":{
           "expandRoles":EXPAND_ROLES,
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"//iam.googleapis.com/projects/project1/serviceAccounts/sa1@project1.iam.gserviceaccount.com"
        },
        "identitySelector":{
           "identity":"user:user1@example.com"
        },
        "options":{
           "expandRoles":true,
           "outputGroupEdges":false,
           "outputResourceEdges":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Este comando muestra las funciones que aparecen en las políticas y los permisos incluidos en la función adjunta a la política. Para mostrar solo las funciones que aparecen en las políticas, inhabilita la opción --expand-roles.

Puedes habilitar la opción --output-group-edges si deseas saber cómo la identidad especificada hereda el acceso a través de la membresía del grupo. Por ejemplo, supongamos que la política tiene un grupo de miembros g1 con user1 como su miembro; verás el perímetro edge-user1.

Puedes habilitar la opción --output-resource-edges si deseas saber cómo el recurso especificado hereda la política del recurso adjunto de la política. Por ejemplo, supongamos que la política se establece en una carpeta f1. Verás los bordes de recursos f1-to-project1 y project1-to-sa1.

Encuentra identidades y recursos con funciones o permisos específicos

Para encontrar identidades y recursos a los que se les otorgó el permiso iam.serviceAccounts.actAs, ejecuta el siguiente comando.

gcloud

gcloud asset GCLOUD_METHOD_NAME \
    --organization="ORG_ID" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

Por ejemplo:

gcloud asset analyze-iam-policy --organization="123456789" \
    --permissions="iam.serviceAccounts.actAs"

REST

  1. Crea un archivo request.json para el cuerpo de la solicitud y configura su contenido como la solicitud de análisis en formato JSON.

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "resourceSelector":{
           "fullResourceName":"FULL_RESOURCE_NAME"
        },
        "identitySelector":{
           "identity":"IDENTITY"
        },
        "options":{
           "expandGroups":EXPAND_GROUPS,
           "outputGroupEdges":OUTPUT_GROUP_EDGES,
           "expandResources":EXPAND_RESOURCES,
           "outputResourceEdges":OUTPUT_RESOURCE_EDGES
        }
      }
    }
    

    Por ejemplo:

    {
      "analysisQuery":{
        "scope":"organizations/123456789",
        "accessSelector":{
           "permissions":[
              "iam.serviceAccounts.actAs"
           ]
        },
        "options":{
           "expandGroups":false,
           "outputGroupEdges":false,
           "expandResources":false,
           "outputResourceEdges":false
        }
      }
    }
    
  2. Después de crear el archivo request.json, puedes ejecutar la solicitud con el siguiente comando mediante el alias gcurl.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:REST_ANALYZE_METHOD"
    

    Aquí:

    • ORG_ID es el ID de la organización, como 1234567890.
    • REST_ANALYZE_METHOD es el método de análisis, ya sea analyzeIamPolicy o analyzeIamPolicyLongrunning.

Puedes habilitar las opciones --expand-groups y --output-group-edges para ver en el resultado las identidades que obtienen permisos mediante la membresía del grupo.

Puedes habilitar las opciones --expand-resources y --output-resource-edges para ver los recursos heredados que tienen cualquier tipo de acceso a la identidad especificada.