Amazon Bedrock-BuardRails anuncia que la aplicación de la política de IAM para ofrecer interacciones seguras de IA

Como IA generativa La adopción se acelera entre las empresas, manteniendo las interacciones AI seguras, responsables y compatibles nunca ha sido más crítico. Baratería de roca amazónica Proporciona salvaguardas configurables que ayudan a las organizaciones a construir aplicaciones de IA generativas con protecciones de seguridad líderes en la industria. Con Amazon Bedrock GuardRails, puede implementar salvaguardas en sus aplicaciones generativas de IA que se personalizan a sus casos de uso y políticas de IA responsables. Puede crear múltiples barandillas adaptadas a diferentes casos de uso y aplicarlos a través de múltiples modelos de base (FMS), mejorando las experiencias de los usuarios y estandarizando los controles de seguridad en aplicaciones generativas de IA. Más allá de los modelos de roca madre de Amazon, el servicio ofrece el flexible AplicarGuardRails API que le permite evaluar el texto utilizando sus barandillas preconfiguradas sin invocar FMS, lo que le permite implementar controles de seguridad en aplicaciones generativas de IA, ya sea ejecutándose en el lecho de roca de Amazon o en otros sistemas, tanto en los niveles de entrada como de salida.

Hoy, anunciamos una mejora significativa en las barandillas de roca madre de Amazon: Gestión de identidad y acceso de AWS (IAM) Ejecución basada en políticas. Esta poderosa capacidad permite a los equipos de seguridad y cumplimiento establecer barandillas obligatorias para cada llamada de inferencia de modelos, asegurándose de que las políticas de seguridad organizacionales se apliquen constantemente en las interacciones de IA. Esta característica mejora la gobernanza de la IA al habilitar el control centralizado sobre la implementación de barandillas.

Desafíos con la construcción de aplicaciones generativas de IA

Las organizaciones que implementan la IA generativa enfrentan desafíos críticos de gobernanza: adecuación de contenido, donde los modelos pueden producir respuestas indeseables a indicaciones problemáticas; Preocupaciones de seguridad, con una generación potencial de contenido dañino incluso de indicaciones inocentes; Requisitos de protección de la privacidad para manejar información confidencial; y aplicación de políticas consistente en las implementaciones de IA.

Quizás lo más desafiante es asegurarse de que las salvaguardas apropiadas se apliquen de manera consistente a través de las interacciones de IA dentro de una organización, independientemente de qué equipo o individuo esté desarrollando o implementando aplicaciones.

Amazon Bedrock -BuardRails Capacidades

Amazon Bedrock -BuardRails le permite implementar salvaguardas en aplicaciones de IA generativas personalizadas para sus casos de uso específicos y políticas de IA responsables. GuardRails actualmente admite seis tipos de políticas:

  • Filtros de contenido – umbrales configurables en seis categorías dañinas: odio, insultos, sexuales, violencia, mala conducta e inyecciones rápidas
  • Temas denegados – Definición de temas específicos que se deben evitar en el contexto de una aplicación
  • Filtros de información confidenciales – Detección y eliminación de la información de identificación personal (PII) y las entidades regulares personalizadas para proteger la privacidad del usuario
  • Filtros de palabras – Bloqueo de palabras específicas en aplicaciones generativas de IA, como palabras dañinas, blasfemias o nombres y productos de la competencia
  • Verificaciones de puesta a tierra contextual – Detección y filtrado de alucinaciones en las respuestas del modelo verificando si la respuesta se basa correctamente en la fuente de referencia proporcionada y relevante para la consulta del usuario
  • Razonamiento automatizado -Prevención de errores fácticos de alucinaciones utilizando un sonido matemático y procesos de verificación algorítmica y de razonamiento basados ​​en la lógica para verificar la información generada por un modelo, por lo que las salidas se alinean con hechos conocidos y no se basan en datos fabricados o inconsistentes

Control de las barandillas basadas en políticas

Los equipos de seguridad a menudo tienen requisitos de organización para hacer cumplir el uso de barandillas de roca madre de Amazon para cada llamada de inferencia a Amazon Bedrock. Para respaldar este requisito, las barandillas de roca madre de Amazon proporcionan la nueva llave de condición IAM bedrock:GuardrailIdentifierque se puede usar en políticas de IAM para hacer cumplir el uso de una barandilla específica para la inferencia del modelo. La clave de condición en la política IAM se puede aplicar a las siguientes API:

El siguiente diagrama ilustra el flujo de trabajo de aplicación basado en políticas.

Si la barandilla configurada en su política de IAM no coincide con la barandilla especificada en la solicitud, la solicitud será rechazada con una excepción de acceso denegado, lo que aplica el cumplimiento de las políticas organizacionales.

Ejemplos de políticas

En esta sección, presentamos varios ejemplos de políticas que demuestran cómo hacer cumplir las barandillas para la inferencia del modelo.

Ejemplo 1: Hacer cumplir el uso de una barandilla específica y su versión numérica

El siguiente ejemplo ilustra la aplicación de exampleguardrail y su versión numérica 1 durante la inferencia del modelo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeFoundationModelStatement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringEquals": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail:1"
                }
            }
        },
        {
            "Sid": "InvokeFoundationModelStatement2",
            "Effect": "Deny",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail:1"
                }
            }
        },
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
            ]
        }
    ]
}

El Denio explícito adicional niega la solicitud del usuario de llamar a las acciones enumeradas con otras GuardrailIdentifier y GuardrailVersion valores independientemente de otros permisos que el usuario pueda tener.

Ejemplo 2: Hacer cumplir el uso de una barandilla específica y su versión de borrador

El siguiente ejemplo ilustra la aplicación de exampleguardrail y su borrador de la versión durante la inferencia del modelo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeFoundationModelStatement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringEquals": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
                }
            }
        },
        {
            "Sid": "InvokeFoundationModelStatement2",
            "Effect": "Deny",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
                }
            }
        },
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
            ]
        }
    ]
}

Ejemplo 3: Hacer cumplir el uso de una barandilla específica y sus versiones numéricas

El siguiente ejemplo ilustra la aplicación de exampleguardrail y sus versiones numéricas durante la inferencia del modelo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeFoundationModelStatement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail:*"
                }
            }
        },
        {
            "Sid": "InvokeFoundationModelStatement2",
            "Effect": "Deny",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail:*"
                }
            }
        },
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
            ]
        }
    ]
}

Ejemplo 4: Hacer cumplir el uso de una barandilla específica y sus versiones, incluido el borrador

El siguiente ejemplo ilustra la aplicación de exampleguardrail y sus versiones, incluido el borrador, durante la inferencia del modelo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeFoundationModelStatement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail*"
                }
            }
        },
        {
            "Sid": "InvokeFoundationModelStatement2",
            "Effect": "Deny",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "bedrock:GuardrailIdentifier": "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail*"
                }
            }
        },
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail"
            ]
        }
    ]
}

Ejemplo 5: Haga cumplir el uso de una barandilla y un par de versiones específicas de una lista de bares de barro y pares de versiones

El siguiente ejemplo ilustra la aplicación de exampleguardrail1 y su versión 1, o exampleguardrail2 y su versión 2, o exampleguardrail3 y su versión 3 y su borrador durante la inferencia del modelo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeFoundationModelStatement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringEquals": {
                    "bedrock:GuardrailIdentifier": [
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail1:1",
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail2:2",
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail3"
                    ]
                }
            }
        },
        {
            "Sid": "InvokeFoundationModelStatement2",
            "Effect": "Deny",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:region::foundation-model/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "bedrock:GuardrailIdentifier": [
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail1:1",
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail2:2",
                        "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail3"
                    ]
                }
            }
        },
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail1",
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail2",
                "arn:aws:bedrock:<region>:<account-id>:guardrail/exampleguardrail3"
            ]
        }
    ]
}

Limitaciones conocidas

Al implementar la aplicación de la barandilla basada en políticas, tenga en cuenta estas limitaciones:

  • Al momento de escribir este artículo, las barandillas de roca madre de Amazon no admiten políticas basadas en recursos para el acceso a la cuenta cruzada.
  • Si un usuario asume un rol que tiene una barandilla específica configurada utilizando el bedrock:GuardrailIdentifier clave de condición, el usuario puede usar estratégicamente Etiquetas de entrada Para ayudar a evitar que los controles de barandilla se apliquen a ciertas partes de su aviso. Las etiquetas de entrada permiten a los usuarios marcar secciones específicas de texto que deben ser procesadas por barandas, dejando otras secciones sin procesar. Por ejemplo, un usuario podría dejar intencionalmente contenido sensible o potencialmente dañino fuera de las secciones etiquetadas, evitando que esas porciones sean evaluadas contra las políticas de barandas. Sin embargo, independientemente de cómo se estructura o etiquetado el aviso, la barandilla aún se aplicará completamente a la respuesta del modelo.
  • Si un usuario tiene un rol configurado con un requisito específico de barandilla (utilizando el bedrock:GuardrailIdentifier condición), no deben usar ese mismo papel para acceder a los servicios como Bases de conocimiento de Amazon Bedrock RetrieveAndGenerate o Agentes de roca madre de Amazon InvokeAgent. Estos servicios de nivel superior funcionan haciendo múltiples InvokeModel Llamas detrás de escena en nombre del usuario. Aunque algunas de estas llamadas pueden incluir la barandilla requerida, otras no. Cuando el sistema intenta hacer estas llamadas libres de barandas utilizando un rol que requiere barandas, resulta en AccessDenied Errores, rompiendo la funcionalidad de estos servicios. Para ayudar a evitar este problema, las organizaciones deben separar los permisos, utilizando diferentes roles para el acceso al modelo directo con barandas versus acceso a estos servicios compuestos de roca madre de Amazon.

Conclusión

La nueva aplicación de barandas basadas en políticas de IAM en Amazon Bedrock representa un avance crucial en la gobernanza de la IA a medida que la IA generativa se integra en las operaciones comerciales. Al habilitar la aplicación de políticas centralizadas, los equipos de seguridad pueden mantener controles de seguridad consistentes en las aplicaciones de IA, independientemente de quién los desarrolle o despliegue, mitigando efectivamente los riesgos relacionados con el contenido dañino, las violaciones de la privacidad y el sesgo. Este enfoque ofrece ventajas significativas: escala de manera eficiente a medida que las organizaciones amplían sus iniciativas de IA sin crear cuellos de botella administrativos, ayuda a prevenir la deuda técnica al estandarizar las implementaciones de seguridad y mejorar la experiencia del desarrollador al permitir que los equipos se centren en la innovación en lugar de la mecánica de cumplimiento.

Esta capacidad demuestra el compromiso organizacional con las prácticas de IA responsables a través de mecanismos integrales de monitoreo y auditoría. Las organizaciones pueden usar el registro de invocación modelo en Amazon Bedrock para capturar datos completos de solicitudes y respuesta en Registros de Amazon CloudWatch o Servicio de almacenamiento simple de Amazon (Amazon S3) cubos, incluida la documentación específica de traza de barandilla que muestra cuándo y cómo se filtró el contenido. Combinado con AWS CloudTrail Integración Que registra configuraciones de barandas y acciones de aplicación de políticas, las empresas pueden escalar con confianza sus iniciativas generativas de IA con mecanismos de seguridad apropiados que protegen su marca, clientes y datos, lo que hace que el equilibrio esencial entre la innovación y la responsabilidad ética necesitara generar confianza en los sistemas de IA.

Empiece hoy con Baratería de roca amazónica e implementar salvaguardas configurables que equilibren la innovación con el gobierno de IA responsable en toda su organización.


Sobre los autores

Shyam Srinivasan está en el equipo de productos de barandilla de roca madre de Amazon. Se preocupa por hacer del mundo un lugar mejor a través de la tecnología y le encanta ser parte de este viaje. En su tiempo libre, a Shyam le gusta correr largas distancias, viajar por el mundo y experimentar nuevas culturas con familiares y amigos.

Antonio Rodríguez es un arquitecto principal de soluciones especialistas en IA generativas en AWS. Ayuda a las empresas de todos los tamaños a resolver sus desafíos, adoptar la innovación y crear nuevas oportunidades de negocio con Amazon Bedrock. Además del trabajo, le encanta pasar tiempo con su familia y practicar deportes con sus amigos.

Satveer Khurpa es un arquitecto de soluciones especialistas en la WW, Bedrock de Amazon en Amazon Web Services. En este rol, utiliza su experiencia en arquitecturas basadas en la nube para desarrollar soluciones de IA generativas innovadoras para clientes en diversas industrias. La comprensión profunda de Satveer de las tecnologías generativas de IA le permite diseñar aplicaciones escalables, seguras y responsables que desbloquean nuevas oportunidades comerciales e impulsan el valor tangible.