Prevención de los problemas del suplente confuso entre servicios
El problema de la sustitución confusa es una cuestión de seguridad en la 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 evitarlo, AWS proporciona herramientas que pueden ayudarlo a proteger sus datos en todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta. Para obtener más información, consulte El problema del suplente confuso en la Guía del usuario de IAM.
A fin de limitar los permisos que Amazon RDS da a otro servicio para un recurso específico, le recomendamos utilizar las claves de contexto de condición global de aws:SourceArn
y aws:SourceAccount
en las políticas de recursos.
En algunos casos, el valor de aws:SourceArn
no contiene el ID de la cuenta, por ejemplo, al utilizar el nombre de recurso de Amazon (ARN) para un bucket de Simple Storage Service (Amazon S3). En estos casos, asegúrese de utilizar ambas claves de contexto de condición global para limitar los permisos. En algunos casos, se utilizan las claves de contexto de condición global y el valor de aws:SourceArn
contiene el ID de la cuenta. En estos casos, asegúrese de que el valor de aws:SourceAccount
y la cuenta en aws:SourceArn
utilicen el mismo ID de cuenta cuando se utilizan en la misma instrucción de política. Si quiere que solo se asocie un recurso al acceso entre servicios, utilice aws:SourceArn
. Si quiere permitir que cualquier recurso de esa cuenta de AWS se asocie al uso entre servicios, utilice aws:SourceAccount
.
Asegúrese de que el valor de aws:SourceArn
sea un ARN para un tipo de recurso de Amazon RDS. Para obtener más información, consulte Nombres de recursos de Amazon (ARN) en Amazon RDS .
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. En algunos casos, es posible que no sepa el ARN completo del recurso o que esté especificando varios recursos. En estos casos, utilice la clave de condición de contexto global de aws:SourceArn
con comodines (*
) para las partes desconocidas del ARN. Un ejemplo es arn:aws:rds:*:
. 123456789012
:*
En el ejemplo siguiente, se muestra cómo se pueden utilizar las claves de contexto de condición global de aws:SourceArn
y aws:SourceAccount
en Amazon RDS para evitar el problema del suplente confuso.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:
us-east-1
:123456789012
:db:mydbinstance
" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } }
Para ver más ejemplos de las políticas que utilizan las claves de contexto de condición global de aws:SourceArn
y aws:SourceAccount
, consulte las siguientes secciones:
-
Concesión de permisos para publicar notificaciones en un tema de Amazon SNS
-
Configuración del acceso a un bucket de Amazon S3 (importación de PostgreSQL)
-
Configuración del acceso a un bucket de Amazon S3 (exportación de PostgreSQL)