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 puedes 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 puedes 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 lo ayudan a proteger los datos de todos los servicios y los directores de servicio tienen acceso a los recursos de su cuenta.
Recomendamos utilizar las claves de contexto de condición aws:SourceAccount
global aws:SourceArn
y 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 StreamsJournalToKinesis
QLDBAPIoperaciones ExportJournalToS3
y. Estas operaciones están dentro del ámbito de este problema de seguridad porque llaman a AWS Security Token Service (AWS STS) para asumir la IAM función que usted especifique.
APIoperación | Servicio llamado | leyes: SourceArn |
---|---|---|
ExportJournalToS3 |
AWS STS (AssumeRole ) |
Permite QLDB asumir la función de cualquier QLDB recurso de la cuenta:
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:
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:
Permite QLDB asumir la función de cualquier QLDB flujo de la cuenta:
Permite QLDB asumir la función de cualquier QLDB recurso de la cuenta:
|
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
" } } } }