Configuración de límites

En este documento, se explica cómo ver y actualizar la configuración de Model Armor Floor, y se proporciona un ejemplo de incumplimiento de la configuración de Model Armor Floor.

La configuración de piso tiene dos propósitos principales:

  • Cumplimiento de la plantilla: Asegúrate de que las plantillas nuevas sean al menos tan restrictivas como las definidas en la configuración de límites. El cumplimiento de la plantilla se define a nivel de la organización y la carpeta.

  • Aplicación intercalada: Aplica protecciones de Model Armor a los modelos de Gemini y a los servidores de MCP de Google Cloud. La aplicación integrada se configura a nivel del proyecto. Cuando se usa la configuración mínima para la aplicación integrada, se requiere el cumplimiento de la plantilla.

Antes de comenzar

Antes de comenzar, completa las siguientes tareas.

Obtén los permisos necesarios

Para obtener los permisos que necesitas para administrar la configuración de Model Armor, pídele a tu administrador que te otorgue el rol de IAM de Administrador de la configuración de Model Armor (roles/modelarmor.floorSettingsAdmin) en la configuración de Model Armor. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Habilita las APIs

Para poder usar las APIs de Model Armor, debes habilitarlas.

Consola

  1. Enable the Model Armor API.

    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 API

  2. Elige el proyecto en el que quieres activar Model Armor.

gcloud

Antes de empezar, sigue estos pasos a través de la Google Cloud CLI con la API de Model Armor:

  1. 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.

  2. Ejecuta el siguiente comando para usar el extremo de API global:

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.googleapis.com/"
  3. Aplicación de configuración de límites

    Siempre se aplica la configuración local. Por ejemplo, si la configuración de límites entra en conflicto, prevalece la configuración que se encuentra en un nivel inferior de la jerarquía de recursos. Del mismo modo, la configuración mínima establecida a nivel del proyecto anula la configuración mínima conflictiva establecida a nivel de la carpeta superior.

    En las siguientes tablas, se indica cómo se aplican los ajustes de piso en diferentes ubicaciones:

    Ubicación de los parámetros de configuración de los límites Aplicación
    Nivel de la organización Se aplica a todo el contenido de la organización.
    Nivel de carpeta Se aplica a todos los proyectos dentro de esa carpeta específica.
    Nivel de proyecto Se aplica solo a ese proyecto específico.

    Para ilustrar cómo se aplica la configuración mínima cuando se establece en diferentes niveles, considera el siguiente ejemplo. Supongamos que estableces límites similares a los siguientes:

    • Parámetros de configuración de límites a nivel de la carpeta (menos específicos): Todo el contenido de esta carpeta debe habilitar un filtro de URI maliciosos.
    • Configuración mínima a nivel del proyecto (más específica): Tu proyecto, ubicado en la carpeta, debe usar la inyección de instrucciones y la detección de jailbreak, con un nivel de confianza medio.

    En esta situación, la configuración que establezcas generará lo siguiente:

    • Cualquier plantilla que crees en tu proyecto debe incluir el filtro de detección de inyección de instrucciones y de jailbreak, ya que la configuración a nivel del proyecto siempre tiene prioridad sobre la configuración a nivel de la carpeta.

    • Una plantilla creada en un proyecto diferente, incluso una plantilla creada en una carpeta diferente, no se ve afectada por la regla de filtro de URI malicioso de la primera carpeta.

    Los parámetros de configuración de piso solo se aplican dentro de su lugar específico en la jerarquía, a menos que se establezcan a nivel de la organización, en cuyo caso se aplican en toda la organización.

    Cumplimiento de las plantillas y la configuración mínima

    Cuando se crea o actualiza una plantilla de Model Armor, este verifica si la configuración de la plantilla cumple con los parámetros de configuración mínimos. No puedes crear ni actualizar una plantilla que sea menos estricta que la configuración mínima.

    La configuración mínima se puede establecer a nivel de organización, carpeta y proyecto. La interfaz de usuario solo está disponible a nivel del proyecto y te permite heredar la configuración a nivel de la organización o la carpeta. Para establecer la configuración de precios mínimos a nivel de la organización o la carpeta, debes usar la API.

    Integración con los servidores MCP de Vertex AI y Google Cloud

    Model Armor se integra en los servidores de Vertex AI y MCP de Google Cloud para analizar las solicitudes y respuestas de los modelos de Gemini y los servidores de MCP remotos según la configuración mínima que definas.Google Cloud Debes habilitar Cloud Logging para obtener visibilidad de las instrucciones y las respuestas. Para obtener más información, consulta Integración de Model Armor con Vertex AI y Integración de Model Armor con servidores de MCP de Google Cloud.

    Configuración de límites

    Usas la configuración de límites para establecer los umbrales de detección mínimos de las plantillas de Model Armor. Estos parámetros de configuración verifican que todas las plantillas nuevas y modificadas cumplan con ciertos requisitos.

    Para configurar los ajustes de piso, haz lo siguiente:

    1. En la consola de Google Cloud , accede a la página de Model Armor.

      Acceder a Model Armor

    2. Selecciona un proyecto.
    3. En la página Model Armor, ve a la pestaña Configuración de nivel y haz clic en Configurar parámetros de nivel.
    4. En la página Configurar los ajustes de piso, selecciona la opción de configuración.
    5. En la sección Detecciones, configura los parámetros de detección.
    6. Opcional: Si seleccionas la detección de Sensitive Data Protection, debes configurar los parámetros de configuración de Sensitive Data Protection.
    7. En la sección IA responsable, establece el nivel de confianza para cada filtro de contenido.

    8. En la sección Servicios, elige los servicios en los que se aplicarán estos parámetros de configuración de límites.

    9. En la sección Registros, selecciona Habilitar Cloud Logging para registrar todas las instrucciones del usuario, las respuestas del modelo y los resultados del detector de configuración de límites.

    10. Selecciona Habilitar la compatibilidad con varios idiomas para usar la configuración de detección de varios idiomas.

    11. Haz clic en Guardar configuración de piso.

    Espera unos minutos para que se apliquen los cambios en la configuración del piso.

    Cómo se heredan los parámetros de configuración de límites

    Cuando configures los límites, selecciona la opción de configuración.

    • Heredar la configuración de límites del nivel superior: Hereda la configuración de límites establecida en un nivel superior de la jerarquía de recursos. Haz clic en Guardar la configuración del piso y omite los pasos siguientes. Para ver la configuración heredada, ve a la pestaña Configuración del piso.

    • Personalizado: Define la configuración de límites para este proyecto. La configuración personalizada que defines para un proyecto anula cualquier configuración mínima heredada.

    • Inhabilitar: Inhabilita cualquier parámetro de configuración mínima heredado, lo que significa que no se aplican reglas de detección a las plantillas de Model Armor ni a Vertex AI para tus cargas de trabajo de Gemini. Haz clic en Guardar la configuración del piso y omite los próximos pasos. Consulta el estado inhabilitado en la pestaña Configuración de piso.

    Define dónde se aplica la configuración de límites

    Selecciona uno de los siguientes servicios en los que se aplicará la configuración de límites.

    • Model Armor: Crear y actualizar plantillas: Se verifica cada plantilla de Model Armor nueva y modificada en un proyecto para garantizar que se especifiquen los parámetros de configuración mínimos según la configuración de límites.

    • Servidor de MCP de Google: Las solicitudes enviadas a los servidores de MCP remotos o de Google se verifican para garantizar que cumplan con los umbrales de configuración de límites. Google Cloud Para obtener más información, consulta Integración de Model Armor con los servidores de MCP de Google Cloud (versión preliminar).

    • Vertex AI: Filtra las solicitudes enviadas a los modelos de Gemini y registra o bloquea las que cumplan con los umbrales de configuración mínima.

      Si seleccionas Vertex AI, se mostrará la sección Vertex AI, en la que podrás elegir cómo se aplican los parámetros de configuración del piso.

      • Solo inspeccionar: Detecta las solicitudes que no cumplen con los parámetros de configuración de límites, pero no las bloquea.
      • Inspecciona y bloquea los incumplimientos: Detecta y bloquea las solicitudes que no cumplen con los parámetros de configuración de límites.

    Cómo ver la configuración mínima de Model Armor

    Consulta la configuración de límites de Model Armor para verificar la configuración existente, identificar los requisitos mínimos de tus aplicaciones de IA o solucionar problemas cuando una plantilla no se comporta como se espera.

    Ejecuta el siguiente comando para ver la configuración del límite inferior de Model Armor.

    Console

    1. En la consola de Google Cloud , accede a la página de Model Armor.

      Acceder a Model Armor

    2. Verifica que estés viendo el proyecto en el que activaste Model Armor.

    3. En la página Model Armor, ve a la pestaña Configuración de la base. Si la configuración mínima se establece a nivel de la organización, puedes consultarla aquí. Si no se definieron parámetros de configuración de precios mínimos, debes configurarlos. Para obtener más información, consulta Cómo configurar los ajustes de piso.

    gcloud

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

        gcloud model-armor floorsettings describe \
            --full-uri='projects/PROJECT_ID/locations/global/floorSetting'
    • Consulta la configuración mínima de Model Armor para una organización determinada.

        gcloud model-armor floorsettings describe \
            --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting'
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

         gcloud model-armor floorsettings describe \
             --full-uri='folders/FOLDER_ID/locations/global/floorSetting'

      Reemplaza lo siguiente:

      • PROJECT_ID: Es el ID del proyecto para la configuración de piso.
      • FOLDER_ID: Es el ID de la carpeta de la configuración del piso.
      • ORGANIZATION_ID: Es el ID de la organización para la configuración del piso.

    REST

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto para la configuración de piso.
    • FOLDER_ID: Es el ID de la carpeta de la configuración del piso.
    • ORGANIZATION_ID: Es el ID de la organización para la configuración del piso.

    C#

    Para ejecutar este código, primero configura un entorno de desarrollo de C# y, luego, instala el SDK de C# para Model Armor.

    Go

    Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getProjectFloorSettings gets details of a single floor setting of a project.
      //
      // This method retrieves the details of a single floor setting of a project.
      //
      // w io.Writer: The writer to use for logging.
      // projectID string: The ID of the project.
      func getProjectFloorSettings(w io.Writer, projectID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	floorSettingsName := fmt.Sprintf("projects/%s/locations/global/floorSetting", projectID)
      
      	// Get the project floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved floor setting: %v\n", response)
      
      	return nil
      }
      
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getFolderFloorSettings gets details of a single floor setting of a folder.
      //
      // This method retrieves the details of a single floor setting of a folder.
      //
      // w io.Writer: The writer to use for logging.
      // folderID string: The ID of the folder.
      func getFolderFloorSettings(w io.Writer, folderID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare folder floor setting path/name
      	floorSettingsName := fmt.Sprintf("folders/%s/locations/global/floorSetting", folderID)
      
      	// Get the folder floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved folder floor setting: %v\n", response)
      
      	return nil
      }
      
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getOrganizationFloorSettings gets details of a single floor setting of an organization.
      //
      // This method retrieves the details of a single floor setting of an organization.
      //
      // w io.Writer: The writer to use for logging.
      // organizationID string: The ID of the organization.
      func getOrganizationFloorSettings(w io.Writer, organizationID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	floorSettingsName := fmt.Sprintf("organizations/%s/locations/global/floorSetting", organizationID)
      
      	// Get the organization floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved org floor setting: %v\n", response)
      
      	return nil
      }
      

    Java

    Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetProjectFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String projectId = "your-project-id";
      
          getProjectFloorSetting(projectId);
        }
      
        public static FloorSetting getProjectFloorSetting(String projectId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.of(projectId, "global").toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for project: " + projectId);
      
            return floorSetting;
          }
        }
      }
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetFolderFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String folderId = "your-folder-id";
      
          getFolderFloorSetting(folderId);
        }
      
        public static FloorSetting getFolderFloorSetting(String folderId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.ofFolderLocationName(folderId, "global").toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for folder: " + folderId);
      
            return floorSetting;
          }
        }
      }
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetOrganizationFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String organizationId = "your-organization-id";
      
          getOrganizationFloorSetting(organizationId);
        }
      
        public static FloorSetting getOrganizationFloorSetting(String organizationId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.ofOrganizationLocationName(organizationId, "global")
                .toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for organization: " + organizationId);
      
            return floorSetting;
          }
        }
      }

    Node.js

    Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const projectId = 'your-project-id';
      
      const name = `projects/${projectId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getProjectFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        // Run request
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getProjectFloorSettings();
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const folderId = 'your-folder-id';
      
      const name = `folders/${folderId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getFolderFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getFolderFloorSettings();
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const organizationId = 'your-organization-id';
      const name = `organizations/${organizationId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getOrganizationFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        // Run request
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getOrganizationFloorSettings();

    PHP

    Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given project.
       *
       * @param string $projectId The project Id for which the floor settings is to be retrieved.
       *
       */
      function get_project_floor_settings(string $projectId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('projects/%s/locations/global/floorSetting', $projectId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given folder.
       *
       * @param string $folderId The folder Id for which the floor settings is to be retrieved.
       *
       */
      function get_folder_floor_settings(string $folderId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('folders/%s/locations/global/floorSetting', $folderId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given organization.
       *
       * @param string $organizationId The organization Id for which the floor settings is to be retrieved.
       *
       */
      function get_organization_floor_settings(string $organizationId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('organizations/%s/locations/global/floorSetting', $organizationId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }

    Python

    Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Model Armor.

    • Visualiza la configuración mínima de Model Armor para un proyecto determinado.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # project_id = "YOUR_PROJECT_ID"
      
      floor_settings_name = f"projects/{project_id}/locations/global/floorSetting"
      
      # Get the project floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      
    • Visualiza la configuración mínima de Model Armor para una carpeta determinada.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # folder_id = "YOUR_FOLDER_ID"
      
      # Prepare folder floor setting path/name
      floor_settings_name = f"folders/{folder_id}/locations/global/floorSetting"
      
      # Get the folder floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      
    • Consulta la configuración mínima de Model Armor para una organización determinada.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # organization_id = "YOUR_ORGANIZATION_ID"
      
      floor_settings_name = (
          f"organizations/{organization_id}/locations/global/floorSetting"
      )
      
      # Get the organization floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      

    Actualiza la configuración mínima de Model Armor

    Actualiza la configuración de límites de Model Armor para cambiar los requisitos mínimos de las plantillas y reflejar los cambios en las políticas de seguridad, corregir errores de configuración o resolver conflictos entre los parámetros de configuración de límites.

    Ejecuta el siguiente comando para actualizar la configuración del límite inferior de Model Armor.

    Console

    1. En la consola de Google Cloud , accede a la página de Model Armor.

      Acceder a Model Armor

    2. Verifica que estés viendo el proyecto en el que activaste Model Armor.

    3. En la página Model Armor, ve a la pestaña Configuración de nivel y haz clic en Configurar parámetros de configuración de nivel.

    4. Actualiza los campos obligatorios y haz clic en Guardar la configuración del piso.

    gcloud

       gcloud model-armor floorsettings update --full-uri=<full-uri-of-the-floorsetting>
    

    Comando de ejemplo:

           gcloud model-armor floorsettings update \
               --malicious-uri-filter-settings-enforcement=ENABLED \
               --pi-and-jailbreak-filter-settings-enforcement=DISABLED \
               --pi-and-jailbreak-filter-settings-confidence-level=LOW_AND_ABOVE \
               --basic-config-filter-enforcement=ENABLED \
               --add-rai-settings-filters='[{"confidenceLevel": "low_and_above", "filterType": "HARASSMENT"}, {"confidenceLevel": "high", "filterType": "SEXUALLY_EXPLICIT"}]'
               --full-uri='folders/FOLDER_ID/locations/global/floorSetting' \
               --enable-floor-setting-enforcement=true
    

    Para configurar los ajustes de piso con la detección en varios idiomas habilitada, ejecuta el siguiente comando:

        gcloud model-armor floorsettings update \
            --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
            --enable-multi-language-detection
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto para la configuración de piso.
    • FOLDER_ID: Es el ID de la carpeta de la configuración del piso.

    REST

    • Actualiza el parámetro de configuración mínimo de Model Armor para un proyecto determinado.

      curl -X PATCH
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" }, "rai_settings":{"rai_filters":{"filter_type":"DANGEROUS", "confidence_level":"LOW_AND_ABOVE" }, \
        "rai_filters":{"filter_type":"HATE_SPEECH", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"HARASSMENT", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"SEXUALLY_EXPLICIT", "confidence_level":"LOW_AND_ABOVE" }}},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token) \
        "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
    • Actualiza el parámetro de configuración mínimo de Model Armor para una carpeta determinada.

      curl -X PATCH \
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": {"filterEnforcement": "ENABLED" }},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
    • Actualiza el parámetro de configuración mínimo de Model Armor para una organización determinada.

      curl -X PATCH \
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": {
            "filterEnforcement": "ENABLED" }},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
            "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

      Reemplaza lo siguiente:

      • PROJECT_ID: Es el ID del proyecto para la configuración de piso.
      • FOLDER_ID: Es el ID de la carpeta de la configuración del piso.
      • ORGANIZATION_ID: Es el ID de la organización para la configuración del piso.

      El comando de actualización devuelve la siguiente respuesta:

      {
      "name": "projects/PROJECT_ID/locations/global/floorSetting",
      "updateTime": "2024-12-19T15:36:21.318191Z",
      "filterConfig": {
      "piAndJailbreakFilterSettings": {
        "filterEnforcement": "ENABLED"
      },
      "maliciousUriFilterSettings": {
      "filterEnforcement": "ENABLED"
      }
      }
      }

    C#

    Para ejecutar este código, primero configura un entorno de desarrollo de C# y, luego, instala el SDK de C# para Model Armor.

    • Actualiza el parámetro de configuración mínimo de Model Armor para un proyecto determinado.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateProjectFloorSettings
      {
          public FloorSetting UpdateProjectFloorSetting(string projectId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"projects/{projectId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }
    • Actualiza el parámetro de configuración mínimo de Model Armor para una carpeta determinada.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateFolderFloorSettings
      {
          public FloorSetting UpdateFolderFloorSetting(string folderId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"folders/{folderId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }
    • Actualiza el parámetro de configuración mínimo de Model Armor para una organización determinada.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateOrganizationFloorSettings
      {
          public FloorSetting UpdateOrganizationFloorSetting(string organizationId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"organizations/{organizationId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }

    Go

    Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.

    • Actualiza el parámetro de configuración mínimo de Model Armor para un proyecto determinado.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateProjectFloorSettings updates the floor settings of a project.
      //
      // This method updates the floor settings of a project.
      //
      // w io.Writer: The writer to use for logging.
      // projectID string: The ID of the project.
      func updateProjectFloorSettings(w io.Writer, projectID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare project floor setting path/name
      	floorSettingsName := fmt.Sprintf("projects/%s/locations/global/floorSetting", projectID)
      
      	// Update the project floor setting
      	// For more details on filters, please refer to the following doc:
      	// [https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
      	enableEnforcement := true
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: &modelarmorpb.FloorSetting{
      			Name: floorSettingsName,
      			FilterConfig: &modelarmorpb.FilterConfig{
      				RaiSettings: &modelarmorpb.RaiFilterSettings{
      					RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      						{
      							FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      							ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      						},
      					},
      				},
      			},
      			EnableFloorSettingEnforcement: &enableEnforcement,
      		},
      	}
      
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated project floor setting: %+v\n", response)
      
      	return nil
      }
      
    • Actualiza el parámetro de configuración mínimo de Model Armor para una carpeta determinada.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateFolderFloorSettings updates floor settings of a folder.
      //
      // This method updates the floor settings of a folder.
      //
      // w io.Writer: The writer to use for logging.
      // folderID string: The ID of the folder.
      func updateFolderFloorSettings(w io.Writer, folderID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare folder floor settings path/name
      	floorSettingsName := fmt.Sprintf("folders/%s/locations/global/floorSetting", folderID)
      
      	// Prepare the floor setting update
      	enableEnforcement := true
      	floorSetting := &modelarmorpb.FloorSetting{
      		Name: floorSettingsName,
      		FilterConfig: &modelarmorpb.FilterConfig{
      			RaiSettings: &modelarmorpb.RaiFilterSettings{
      				RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      					{
      						FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      						ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      					},
      				},
      			},
      		},
      		EnableFloorSettingEnforcement: &enableEnforcement,
      	}
      
      	// Prepare request for updating the floor setting.
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: floorSetting,
      	}
      
      	// Update the floor setting.
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated folder floor setting: %v\n", response)
      
      	return nil
      
      }
      
    • Actualiza el parámetro de configuración mínimo de Model Armor para una organización determinada.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateOrganizationFloorSettings updates floor settings of an organization.
      //
      // This method updates the floor settings of an organization.
      //
      // w io.Writer: The writer to use for logging.
      // organizationID string: The ID of the organization.
      func updateOrganizationFloorSettings(w io.Writer, organizationID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare organization floor setting path/name
      	floorSettingsName := fmt.Sprintf("organizations/%s/locations/global/floorSetting", organizationID)
      
      	// Update the organization floor setting
      	// For more details on filters, please refer to the following doc:
      	// [https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
      	enableEnforcement := true
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: &modelarmorpb.FloorSetting{
      			Name: floorSettingsName,
      			FilterConfig: &modelarmorpb.FilterConfig{
      				RaiSettings: &modelarmorpb.RaiFilterSettings{
      					RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      						{
      							FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      							ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      						},
      					},
      				},
      			},
      			EnableFloorSettingEnforcement: &enableEnforcement,
      		},
      	}
      
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated org floor setting: %+v\n", response)
      

    Java

    Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.

    Node.js

    Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.

    • Actualiza el parámetro de configuración mínimo de Model Armor para un proyecto determinado.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const projectId = 'your-project-id';
      
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      // Initiate client
      const client = new ModelArmorClient();
      
      async function updateProjectFloorSettings() {
        const floorSettingsName = `projects/${projectId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateProjectFloorSettings();
    • Actualiza el parámetro de configuración mínimo de Model Armor para una carpeta determinada.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const folderId = 'your-folder-id';
      
      // Imports the Model Armor library
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      // Instantiates a client
      const client = new ModelArmorClient();
      
      async function updateFolderFloorSettings() {
        const floorSettingsName = `folders/${folderId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateFolderFloorSettings();
    • Actualiza el parámetro de configuración mínimo de Model Armor para una organización determinada.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const organizationId = 'your-organization-id';
      
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      const client = new ModelArmorClient();
      
      async function updateOrganizationFloorSettings() {
        const floorSettingsName = `organizations/${organizationId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateOrganizationFloorSettings();

    PHP

    Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.

    • Actualiza el parámetro de configuración mínimo de Model Armor para un proyecto determinado.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given project.
       *
       * @param string $projectId The project Id for which the floor settings is to be updated.
       *
       */
      function update_project_floor_settings(string $projectId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('projects/%s/locations/global/floorSetting', $projectId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }
    • Actualiza el parámetro de configuración mínimo de Model Armor para una carpeta determinada.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given folder.
       *
       * @param string $folderId The folder Id for which the floor settings is to be updated.
       *
       */
      function update_folder_floor_settings(string $folderId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('folders/%s/locations/global/floorSetting', $folderId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }
    • Actualiza el parámetro de configuración mínimo de Model Armor para una organización determinada.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given organization.
       *
       * @param string $organizationId The organization Id for which the floor settings is to be updated.
       *
       */
      function update_organization_floor_settings(string $organizationId)
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('organizations/%s/locations/global/floorSetting', $organizationId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }

    Python

    Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Model Armor.

    Revisa los resultados sobre el incumplimiento de la configuración de límites

    Cada hallazgo de Model Armor identifica un incumplimiento de la configuración mínima. Se produce un incumplimiento cuando una plantilla de Model Armor no cumple con los estándares de seguridad mínimos definidos por la configuración de límites de la jerarquía de recursos. La configuración mínima define los requisitos mínimos para las plantillas.

    Los hallazgos se generan cuando se produce alguno de los siguientes incumplimientos de la configuración del piso:

    • Se crea una plantilla con parámetros de configuración menos restrictivos antes de configurar los parámetros mínimos.
    • A una plantilla le faltan filtros obligatorios.
    • Una plantilla no cumple con el nivel de confianza mínimo para los filtros.

    Cuando se detecta un incumplimiento, se genera un hallazgo de gravedad alta en Security Command Center (solo si usas el nivel de servicio Premium o Enterprise de Security Command Center). El hallazgo especifica el parámetro de configuración de límite incumplido, la plantilla que no cumple con los requisitos y los detalles sobre el incumplimiento.

    En el siguiente ejemplo, se muestra el campo sourceProperties del hallazgo. Este incumplimiento, relacionado con el filtro de URI maliciosos, se produjo porque el parámetro de configuración de la plantilla para maliciousUriFilterSettings es DISABLED, pero la configuración mínima requiere que sea ENABLED.

    {
      "filterConfig": {
        "raiSettings": {
          "raiFilters": [
            {
              "filterType": "HATE_SPEECH",
              "confidenceLevel": {
                "floorSettings": "LOW_AND_ABOVE",
                "template": "MEDIUM_AND_ABOVE"
              }
            },
            {
              "filterType": "HARASSMENT",
              "confidenceLevel": {
                "floorSettings": "MEDIUM_AND_ABOVE",
                "template": "HIGH"
              }
            }
          ]
        },
        "piAndJailbreakFilterSettings": {
          "confidenceLevel": {
            "floorSettings": "LOW_AND_ABOVE",
            "template": "HIGH"
          }
        },
        "maliciousUriFilterSettings": {
          "floorSettings": "ENABLED",
          "template": "DISABLED"
        }
      }
    }

    ¿Qué sigue?