View a markdown version of this page

Cross-service confusa prevención adjunta - AWS PIEZAS

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.

Cross-service confusa prevención adjunta

El problema del suplente confuso 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 de identidad entre servicios puede resultar en el confuso problema de los diputados. Cross-service la suplantación de identidad puede ocurrir cuando un servicio (el servicio llamante) llama a otro servicio (el servicio llamado). 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 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.

Recomendamos usar las claves de contexto de condición aws:SourceAccount global aws:SourceArn y las claves de condición global en las políticas de recursos para limitar los permisos que AWS Parallel Computing Service (AWS PCS) otorga a otro servicio al recurso. Utiliza aws:SourceArn si desea que solo se asocie un recurso al acceso entre servicios. Utiliza aws:SourceAccount si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

La forma más eficaz de protegerse contra el problema de la sustitución confusa 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, utilice la clave de condición de contexto global aws:SourceArn con caracteres comodines (*) para las partes desconocidas del ARN. Por ejemplo, arn:aws:servicename:*:123456789012:*.

Si el valor de aws:SourceArn no contiene el ID de cuenta, como un ARN de bucket de Amazon S3, debe utilizar ambas claves de contexto de condición global para limitar los permisos.

El valor de aws:SourceArn debe ser un ARN de clúster.

El siguiente ejemplo muestra cómo puede usar las claves de contexto de condición aws:SourceAccount global aws:SourceArn y las claves de contexto en AWS PCS para evitar el confuso problema de los sustitutos.

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

Función de IAM para las instancias de Amazon EC2 aprovisionadas como parte de un grupo de nodos de procesamiento

AWS PCS organiza automáticamente la capacidad de Amazon EC2 para cada uno de los grupos de nodos de procesamiento configurados en un clúster. Al crear un grupo de nodos de procesamiento, los usuarios deben proporcionar un perfil de instancia de IAM en el campo. iamInstanceProfileArn El perfil de instancia especifica los permisos asociados a las instancias EC2 aprovisionadas. AWS PCS acepta cualquier rol que tenga AWSPCS como prefijo el nombre del rol o /aws-pcs/ como parte de la ruta del rol. El iam:PassRole permiso es obligatorio en la identidad de IAM (usuario o rol) que crea o actualiza un grupo de nodos de procesamiento. Cuando un usuario invoca las CreateComputeNodeGroup acciones de la UpdateComputeNodeGroup API, AWS PCS comprueba si el usuario está autorizado a realizar la iam:PassRole acción.

La siguiente política de ejemplo otorga permisos para transferir únicamente los roles de IAM cuyo nombre comience por AWSPCS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/AWSPCS*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com" ] } } } ] }