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 del suplente confuso entre servicios
El problema del suplente confuso 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 entre servicios puede dar lugar al problema del suplente confuso.
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 adjuntos, AWS proporciona herramientas que lo ayudan a proteger sus datos de todos los servicios con los directores de servicio a los que se les ha dado acceso a los recursos de su cuenta.
Recomendamos utilizar las claves de contexto aws:SourceArn
y las condiciones aws:SourceAccount
globales en las políticas de recursos para limitar los permisos que Amazon QLDB otorga a otro servicio al recurso. Si usas ambas claves de contexto de condiciones globales, el aws:SourceAccount
valor y la cuenta del aws:SourceArn
valor deben usar el mismo ID de cuenta cuando se usen en la misma declaración de política.
La siguiente tabla muestra los posibles valores de aws:SourceArn
para las operaciones de la API ExportJournalToS3
y StreamsJournalToKinesis
QLDB. Estas operaciones están dentro del alcance de este problema de seguridad porque llaman a AWS Security Token Service (AWS STS) para asumir la función de IAM que usted especifique.
Operación de la API | Servicio llamado | leyes: SourceArn |
---|---|---|
ExportJournalToS3 |
AWS STS (AssumeRole ) |
Permite que QLDB asuma la función de cualquier recurso de QLDB de la cuenta:
Actualmente, QLDB solo admite este ARN comodín para las exportaciones de diarios. |
StreamsJournalToKinesis |
AWS STS (AssumeRole ) |
Permite que QLDB asuma la función de una transmisión de QLDB específica:
Nota: Solo puede especificar un ID de transmisión en el ARN después de crear el recurso de transmisión. Con este ARN, puede permitir que el rol solo se use para una sola transmisión de QLDB. Permite que QLDB asuma la función de cualquier flujo de QLDB de un registro:
Permite que QLDB asuma la función de cualquier transmisión de QLDB de la cuenta:
Permite que QLDB asuma la función de cualquier recurso de QLDB de la cuenta:
|
La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar la clave de contexto de condición global de aws:SourceArn
con el ARN completo del recurso. Si no conoces el ARN completo del recurso o si especificas varios recursos, usa la clave de condición de contexto aws:SourceArn
global con caracteres comodín (*
) para las partes desconocidas del ARN, por ejemplo,. arn:aws:qldb:us-east-1:
123456789012
:*
El siguiente ejemplo de política de confianza para una función de IAM muestra cómo puede utilizar las claves aws:SourceArn
contextuales y las condiciones aws:SourceAccount
globales para evitar el confuso problema de adjunto. Con esta política de confianza, QLDB solo puede asumir la función de cualquier transmisión de QLDB en la cuenta del libro 123456789012
mayor. myExampleLedger
Para usar esta política, sustituya us-east-1
, 123456789012
y, myExampleLedger
en el ejemplo, por 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
" } } } }