Controla el acceso a los recursos

Puedes establecer políticas de Identity and Access Management (IAM) para controlar el acceso a los siguientes recursos de Vertex AI Feature Store:

  • Grupos de funciones

  • Instancias de tiendas en línea

  • Vistas de funciones

Una política de IAM es una colección de vinculaciones que asocian uno o más miembros, o principales, a un rol de IAM. Puedes incluir los siguientes tipos de miembros en una vinculación de política de IAM:

  • Cuentas de usuarios individuales

  • Grupos de Google

  • Dominios

  • Cuentas de servicio

Antes de comenzar

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

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 .

Configura una política de IAM para un grupo de funciones

Usa el siguiente ejemplo para establecer una política de IAM para un grupo de atributos existente.

REST

Para asignar una política de IAM a un recurso FeatureGroup, envía una solicitud POST con el método featureGroups.setIamPolicy.

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

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREGROUP_NAME: Es el nombre de la instancia de la tienda en línea para la que deseas establecer la política de IAM.
  • IAM_ROLE_NAME: Es el nombre del rol de IAM que se asignará a los miembros. Para obtener una lista completa de los roles de IAM para Vertex AI, consulta Control de acceso con IAM.
  • USER_EMAIL: Opcional Es la dirección de correo electrónico de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: Opcional Dirección de correo electrónico 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 Es la dirección de correo electrónico 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 que se muestra a continuación:

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

Configura una política de IAM para un almacén en línea

Usa la siguiente muestra para establecer una política de IAM para una instancia de tienda en línea existente.

REST

Para asignar una política de IAM a un recurso FeatureOnlineStore, envía una solicitud POST con el método featureOnlineStores.setIamPolicy.

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

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es el nombre de la instancia de la tienda en línea para la que deseas establecer la política de IAM.
  • IAM_ROLE_NAME: Es el nombre del rol de IAM que se asignará a los miembros. Para obtener una lista completa de los roles de IAM para Vertex AI, consulta Control de acceso con IAM.
  • USER_EMAIL: Opcional Es la dirección de correo electrónico de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: Opcional Dirección de correo electrónico 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. Es la dirección de correo electrónico 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 que se muestra a continuación:

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

Configura una política de IAM para una vista de entidad

Usa el siguiente ejemplo para establecer una política de IAM para una vista de atributos existente.

REST

Para asignar una política de IAM a un recurso FeatureView, envía una solicitud POST con el método featureViews.setIamPolicy.

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

  • LOCATION_ID: Es la región en la que se encuentra la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es el nombre de la instancia de la tienda en línea que contiene la vista de atributos.
  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos para la que deseas establecer la política de IAM.
  • IAM_ROLE_NAME: Es el nombre del rol de IAM que se asignará a los miembros. Para obtener una lista completa de los roles de IAM para Vertex AI, consulta Control de acceso con IAM.
  • USER_EMAIL: Opcional Es la dirección de correo electrónico de la cuenta de usuario a la que se asigna el rol.
  • GROUP_EMAIL: Opcional Dirección de correo electrónico 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. Es la dirección de correo electrónico 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 que se muestra a continuación:

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

¿Qué sigue?