Controla el acceso a los recursos de la tienda en línea

Puedes controlar el acceso a las instancias de tiendas en línea y las vistas de componentes si configuras políticas de Identity and Access Management (IAM) para esos recursos. Una política de IAM es un conjunto de vinculaciones que asocia 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íticas 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 proporcionas a la CLI de gcloud.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Configura una política de IAM para una tienda 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, por ejemplo, aiplatform.featureOnlineStoreUser. Para obtener una lista completa de los roles de IAM de Vertex AI, consulta [Control de acceso con IAM](/vertex-ai/docs/general/access-control).
  • USER_EMAIL: Opcional La dirección de correo electrónico de la cuenta de usuario a la que se le asignó el rol
  • GROUP_EMAIL: Opcional La dirección de correo electrónico del grupo de Google al que se asignó el rol.
  • DOMAIN_NAME: Opcional Es el nombre de dominio al que se asigna el rol.
  • SERVICE_ACCOUNT_EMAIL: Es opcional. Es la dirección de correo electrónico de la cuenta de servicio a la que se le asignó el rol.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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 componentes

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, por ejemplo, aiplatform.featureOnlineStoreUser. Para obtener una lista completa de los roles de IAM de Vertex AI, consulta [Control de acceso con IAM](/vertex-ai/docs/general/access-control).
  • USER_EMAIL: Opcional La dirección de correo electrónico de la cuenta de usuario a la que se le asignó el rol
  • GROUP_EMAIL: Opcional La dirección de correo electrónico del grupo de Google al que se asignó el rol.
  • DOMAIN_NAME: Opcional Es el nombre de dominio al que se asigna el rol.
  • SERVICE_ACCOUNT_EMAIL: Es opcional. Es la dirección de correo electrónico de la cuenta de servicio a la que se le asignó el rol.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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?