

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 prevención de diputados confusos
<a name="security_confused_deputy"></a>

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. Cross-service la suplantación de identidad puede producirse cuando un servicio (el servicio de 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 le ayudan a proteger sus datos en todos los servicios cuyos directores de servicio tengan acceso a los recursos de su cuenta. 

Recomendamos utilizar las claves de contexto [aws: SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [aws: SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) global condition en las políticas de recursos para limitar los permisos que se CodeDeploy otorgan a otro servicio al recurso. Si utiliza claves de contexto de condición global y el valor de `aws:SourceArn` contiene el ID de cuenta, el valor de `aws:SourceAccount` y la cuenta en el valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utiliza en la misma instrucción de política. Utiliza `aws:SourceArn` si desea que solo se asocie un recurso al acceso entre servicios. Utilice `aws:SourceAccount` si quiere que cualquier recurso de esa cuenta se asocie al uso entre servicios.

 EC2/On-PremisesEn el caso de las implementaciones AWS Lambda y normales de Amazon ECS, el valor de `aws:SourceArn` debe incluir el ARN del CodeDeploy grupo de implementaciones con el que CodeDeploy se le permite asumir la función de IAM.

En el caso de [ blue/greenlas implementaciones de Amazon ECS creadas mediante CloudFormation](deployments-create-ecs-cfn.md), el valor de `aws:SourceArn` debe incluir el CloudFormation ARN de pila con el CodeDeploy que se permite asumir la función de IAM.

La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar la clave de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo o si está especificando varios recursos, utilice los caracteres comodín (\*) para las partes desconocidas.

Por ejemplo, puede usar la siguiente política de confianza con una EC2/On-Premises implementación de AWS Lambda o una implementación normal de Amazon ECS:

------
#### [ JSON ]

****  

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

------

Para una [ blue/greenimplementación de Amazon ECS creada mediante CloudFormation](deployments-create-ecs-cfn.md), puede usar:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "codedeploy.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{111122223333}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudformation:{{us-east-1}}:{{111122223333}}:stack/{{MyCloudFormationStackName}}/*"
                }
            }
        }
    ]
}
```

------