Controlar el acceso a los recursos

Puedes definir políticas de Gestión de Identidades y Accesos (IAM) para controlar el acceso a los siguientes recursos de Vertex AI Feature Store:

  • Grupos de funciones

  • Instancias de tienda online

  • Vistas de funciones

Una política de gestión de identidades y accesos es un conjunto de vinculaciones que asocian uno o varios miembros o entidades principales a un rol de gestión de identidades y accesos. Puedes incluir los siguientes tipos de miembros en una vinculación de políticas de gestión de identidades y accesos:

  • Cuentas de usuario individuales

  • Grupos de Google

  • Dominios

  • Cuentas de servicio

Antes de empezar

Autentícate en Vertex AI, a menos que ya lo hayas hecho.

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 .

Definir una política de gestión de identidades y accesos para un grupo de funciones

Usa el siguiente ejemplo para definir una política de gestión de identidades y accesos en un grupo de funciones.

REST

Para asignar una política de gestión de identidades y accesos a un recurso de FeatureGroup, envía una solicitud POST mediante el método featureGroups.setIamPolicy.

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

  • LOCATION_ID: región en la que se encuentra la instancia de la tienda online, como us-central1.
  • PROJECT_ID: tu ID de proyecto.
  • FEATUREGROUP_NAME: el nombre de la instancia de la tienda online para la que quieres definir la política de IAM.
  • IAM_ROLE_NAME: el nombre del rol de gestión de identidades y accesos que se asignará a los miembros. Para ver una lista completa de los roles de gestión de identidades y accesos de Vertex AI, consulta Control de acceso con gestión de identidades y accesos.
  • USER_EMAIL: opcional. La dirección de correo de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: opcional. La dirección de correo del grupo de Google al que se asigna el rol.
  • DOMAIN_NAME: opcional. Nombre de dominio al que se asigna el rol.
  • SERVICE_ACCOUNT_EMAIL: opcional. Dirección de correo de la cuenta de servicio a la que se asigna el rol.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

Definir una política de gestión de identidades y accesos para una tienda online

Usa el siguiente ejemplo para definir una política de gestión de identidades y accesos en una instancia de tienda online.

REST

Para asignar una política de gestión de identidades y accesos a un recurso de FeatureOnlineStore, envía una solicitud POST mediante el método featureOnlineStores.setIamPolicy.

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

  • LOCATION_ID: región en la que se encuentra la instancia de la tienda online, como us-central1.
  • PROJECT_ID: tu ID de proyecto.
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda online para la que quieres definir la política de IAM.
  • IAM_ROLE_NAME: el nombre del rol de gestión de identidades y accesos que se asignará a los miembros. Para ver una lista completa de los roles de gestión de identidades y accesos de Vertex AI, consulta Control de acceso con gestión de identidades y accesos.
  • USER_EMAIL: opcional. La dirección de correo de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: opcional. La dirección de correo del grupo de Google al que se asigna el rol.
  • DOMAIN_NAME: opcional. Nombre de dominio al que se asigna el rol.
  • SERVICE_ACCOUNT_EMAIL: opcional. Dirección de correo de la cuenta de servicio a la que se asigna el rol.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

Definir una política de gestión de identidades y accesos para una vista de características

Usa el siguiente ejemplo para definir una política de gestión de identidades y accesos en una vista de características.

REST

Para asignar una política de gestión de identidades y accesos a un recurso de FeatureView, envía una solicitud POST mediante el método featureViews.setIamPolicy.

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

  • LOCATION_ID: región en la que se encuentra la vista de características, como us-central1.
  • PROJECT_ID: tu ID de proyecto.
  • FEATUREONLINESTORE_NAME: nombre de la instancia de la tienda online que contiene la vista de la función.
  • FEATUREVIEW_NAME: nombre de la vista de la función para la que quieres definir la política de gestión de identidades y accesos.
  • IAM_ROLE_NAME: el nombre del rol de gestión de identidades y accesos que se asignará a los miembros. Para ver una lista completa de los roles de gestión de identidades y accesos de Vertex AI, consulta Control de acceso con gestión de identidades y accesos.
  • USER_EMAIL: opcional. La dirección de correo de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: opcional. La dirección de correo del grupo de Google al que se asigna el rol.
  • DOMAIN_NAME: opcional. Nombre de dominio al que se asigna el rol.
  • SERVICE_ACCOUNT_EMAIL: opcional. Dirección de correo de la cuenta de servicio a la que se asigna el rol.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

Siguientes pasos