Prevención de la sustitución confusa entre servicios - Base de datos Amazon Quantum Ledger (AmazonQLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prevención de la sustitución confusa entre servicios

importante

Aviso de fin de soporte: los clientes actuales podrán usar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre.

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación de identidad entre servicios puede provocar el confuso problema de un diputado.

La suplantación entre servicios puede producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puede manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitar el confuso problema de los diputados, AWS proporciona herramientas que le ayudan a proteger los datos de todos los servicios cuyos directores de servicio tengan acceso a los recursos de su cuenta.

Recomendamos utilizar las claves de contexto de condición aws:SourceAccountglobal aws:SourceArny las claves de contexto en las políticas de recursos para limitar los permisos que Amazon QLDB concede a otro servicio al recurso. Si se utilizan ambas claves de contexto de condición global, el valor aws:SourceAccount y la cuenta del valor aws:SourceArn deben utilizar el mismo ID de cuenta cuando se utilicen en la misma instrucción de política.

En la siguiente tabla se enumeran los valores posibles aws:SourceArn de las StreamsJournalToKinesisQLDBAPIoperaciones ExportJournalToS3y. Estas operaciones están dentro del ámbito de este problema de seguridad porque llaman AWS Security Token Service (AWS STS) para asumir la IAM función que especifique.

APIoperación Servicio llamado leyes: SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

Permite QLDB asumir la función de cualquier QLDB recurso de la cuenta:

arn:aws:qldb:us-east-1:123456789012:*

Actualmente, QLDB solo admite este comodín ARN para la exportación de revistas.

StreamsJournalToKinesis AWS STS (AssumeRole)

Permite QLDB asumir el rol de un QLDB flujo específico:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy

Nota: Solo puede especificar un ID de transmisión una ARN vez creado el recurso de transmisión. Con estoARN, puedes permitir que el rol solo se use para una QLDB transmisión única.

Permite QLDB asumir la función de cualquier QLDB flujo de un libro mayor:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*

Permite QLDB asumir la función de cualquier QLDB flujo de la cuenta:

arn:aws:qldb:us-east-1:123456789012:stream/*

Permite QLDB asumir la función de cualquier QLDB recurso de la cuenta:

arn:aws:qldb:us-east-1:123456789012:*

La forma más eficaz de protegerse contra el confuso problema de los diputados es utilizar la clave del contexto ARN de la condición aws:SourceArn global con todo el recurso. Si no conoce la totalidad ARN del recurso o si está especificando varios recursos, utilice la clave de condición del contexto aws:SourceArn global con caracteres comodín (*) para las partes desconocidas de ARN —por ejemplo,. arn:aws:qldb:us-east-1:123456789012:*

En el siguiente ejemplo de política de confianza para un IAM rol, se muestra cómo se pueden utilizar las claves contextuales de condición aws:SourceAccount global aws:SourceArn y las claves contextuales para evitar el confuso problema de los suplentes. Con esta política de confianza, myExampleLedger solo QLDB puede asumir la función de cualquier QLDB flujo de la cuenta 123456789012 para el libro mayor.

Para usar esta política, sustituya us-east-1, 123456789012, y myExampleLedger en el ejemplo, con su propia información.

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }