Prevención del suplente confuso entre servicios - Amazon Quantum Ledger Database (Amazon QLDB)

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 problema del suplente confuso,AWSproporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.

Le recomendamos que utilice laaws:SourceArnyaws:SourceAccountclaves de contexto de condición global en las políticas de recursos para limitar los permisos que Amazon QLDB concede a otro servicio para el recurso. Si utiliza ambas claves de contexto de condición global, elaws:SourceAccountvalor y la cuenta en elaws:SourceArndebe usar el mismo ID de cuenta cuando se utiliza en la misma declaración de política.

En la siguiente tabla se muestran los valores posibles deaws:SourceArnpara laExportJournalToS3yStreamsJournalToKinesisOperaciones de la API de QLDB. Estas operaciones están dentro del alcance de este problema de seguridad porque llamanAWS Security Token Service(AWS STS) para que asuma una función de IAM que especifique.

Operación de la API Servicio llamado sierras:SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

Permite a QLDB asumir el rol para cualquier recurso de QLDB en la cuenta:

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

Actualmente, QLDB solo admite este ARN comodín para las exportaciones de revistas.

StreamsJournalToKinesis AWS STS (AssumeRole)

Permite que QLDB asuma la función de una transmisión de QLDB específica:

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

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 única transmisión de QLDB.

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

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

Permite que QLDB asuma la función de cualquier transmisión de QLDB en la cuenta:

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

Permite a QLDB asumir el rol para cualquier recurso de QLDB en la cuenta:

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

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 conoce el ARN completo del recurso o si está especificando varios recursos, utiliceaws:SourceArnclave de condición de contexto global con caracteres comodín (*) para las partes desconocidas del ARN, por ejemplo,arn:aws:qldb:us-east-1:123456789012:*.

En el siguiente ejemplo de política de confianza para un rol de IAM se muestra cómo se puede utilizar elaws:SourceArnyaws:SourceAccountclaves de contexto de condición global para evitar el problema del suplente confuso. Con esta política de confianza, QLDB puede asumir el rol de cualquier transmisión de QLDB en la cuenta123456789012para el libro mayormyExampleLedgerSolo la .

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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" } } } }