

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.

# Implementación de controles de acceso preventivos basados en atributos para las subredes públicas
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets"></a>

*Joel Alfredo Nunez Gonzalez y Samuel Ortega Sancho, Amazon Web Services*

## Resumen
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-summary"></a>

En las arquitecturas de red centralizadas, las nubes privadas virtuales de inspección y periferia (VPCs) concentran todo el tráfico entrante y saliente, como el tráfico hacia y desde Internet. Sin embargo, esto puede crear cuellos de botella o provocar que se alcancen los límites de las Service quotas de AWS. La implementación de la seguridad perimetral de la red junto con las cargas de trabajo VPCs proporciona una escalabilidad sin precedentes en comparación con el enfoque centralizado más común. Esto se denomina arquitectura de *periferia distribuida*.

Si bien la implementación de subredes públicas en las cuentas de carga de trabajo puede ofrecer beneficios, también presenta nuevos riesgos de seguridad porque aumenta la superficie expuesta a ataques. Se recomienda implementar solo los recursos de Elastic Load Balancing (ELB), como los balanceadores de carga de aplicaciones o las puertas de enlace NAT, en las subredes públicas de estos. VPCs El uso de equilibradores de carga y puertas de enlace NAT en subredes públicas dedicadas lo ayuda a implementar un control detallado del tráfico entrante y saliente.

*El control de acceso basado en atributos* (ABAC) es la práctica de crear permisos detallados basados en los atributos del usuario, como el departamento, el puesto de trabajo y el nombre del equipo. Para obtener más información, consulte [ABAC para AWS](https://aws.amazon.com/identity/attribute-based-access-control/). ABAC puede proporcionar barreras para las subredes públicas en las cuentas de carga de trabajo. Esto ayuda a los equipos de aplicaciones a ser ágiles, sin comprometer la seguridad de la infraestructura.

Este patrón describe cómo ayudar a proteger las subredes públicas mediante la implementación de ABAC mediante una [política de control de servicios (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en AWS Organizations y [políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en AWS Identity and Access Management (IAM). El SCP se aplica a una cuenta de miembro de una organización o a una unidad organizativa (OU). Estas políticas de ABAC permiten a los usuarios implementar pasarelas NAT en las subredes de destino e impiden que desplieguen otros recursos de Amazon Elastic Compute Cloud (Amazon EC2), como EC2 instancias e interfaces de red elásticas.  

## Requisitos previos y limitaciones
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-prereqs"></a>

**Requisitos previos **
+ Una organización en AWS Organizations
+ Acceso administrativo a la cuenta raíz de AWS Organizations
+ En la organización, una cuenta de miembro activa o una unidad organizativa para probar el SCP

**Limitaciones**
+ El SCP de esta solución no impide que los servicios de AWS que utilizan un rol vinculado a un servicio implementen recursos en las subredes de destino. Algunos ejemplos de estos servicios son Elastic Load Balancing (ELB), Amazon Elastic Container Service (Amazon ECS) y Amazon Relational Database Service (Amazon RDS). Para obtener más información, consulte [Efectos de SCP en los permisos en](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) la documentación de AWS Organizations. Implemente controles de seguridad para detectar estas excepciones.

## Arquitectura
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-architecture"></a>

**Pila de tecnología de destino**
+ SCP aplicado a una cuenta o unidad organizativa de AWS en AWS Organizations
+ Las siguientes roles de IAM:
  + `AutomationAdminRole`: Se utiliza para modificar las etiquetas de subred y crear recursos de VPC después de implementar el SCP
  + `TestAdminRole`: Se utiliza para comprobar si el SCP impide que otros responsables de IAM, incluidos los que tienen acceso administrativo, realicen las acciones reservadas para `AutomationAdminRole`

**Arquitectura de destino**

![Las etiquetas impiden que los usuarios implementen recursos distintos de las puertas de enlace de NAT en las subredes públicas.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/25f22f67-5bb6-42ac-8fd6-836e00c436f1/images/b8345c8c-0fc5-46a3-be60-c171979cf979.png)


1. El rol de IAM de `AutomationAdminRole` se crea en la cuenta de destino. Este rol tiene permisos para administrar los recursos de red. Tenga en cuenta los siguientes permisos que son exclusivos de este rol:
   + Esta función puede crear VPCs y publicar subredes.
   + Este rol puede modificar las asignaciones de etiquetas para las subredes de destino.
   + Este rol puede administrar sus propios permisos.

1. En AWS Organizations, se aplica el SCP a la cuenta o unidad organizativa de AWS de destino. Para ver un ejemplo de política, consulte [Información adicional](#deploy-preventative-attribute-based-access-controls-for-public-subnets-additional) en este patrón.

1. Un usuario o una herramienta de la CI/CD canalización pueden asumir la `AutomationAdminRole` función de aplicar la `SubnetType` etiqueta a las subredes de destino.

1. Al asumir otros roles de IAM, los directores de IAM autorizados de su organización pueden administrar las puertas de enlace NAT en las subredes de destino y otros recursos de red permitidos en la cuenta de AWS, como las tablas de enrutamiento. Utilice políticas de IAM para conceder esos permisos. Para obtener más información, consulte [Administración de identidad y acceso para Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html).

**Automatizar y escalar**

Para ayudar a proteger las subredes públicas, se deben aplicar [las etiquetas de AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) correspondientes. Tras aplicar el SCP, las pasarelas NAT son el único tipo de EC2 recurso de Amazon que los usuarios autorizados pueden crear en las subredes que tienen la etiqueta. `SubnetType:IFA` (se `IFA` refiere a los activos con acceso a *Internet*). El SCP impide la creación de otros EC2 recursos de Amazon, como instancias e interfaces de red elásticas. Te recomendamos que utilices una CI/CD canalización que asuma la `AutomationAdminRole` función de crear recursos de VPC para que estas etiquetas se apliquen correctamente a las subredes públicas.

## Tools (Herramientas)
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-tools"></a>

**Servicios de AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) es un servicio de administración de cuentas que le permite agrupar varias cuentas de AWS en una organización que usted crea y administra de manera centralizada. En AWS Organizations, puede implementar [políticas de control de servicios (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html), que son un tipo de política que puede usar para administrar los permisos en su organización.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

## Epics
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-epics"></a>

### Aplicación del SCP
<a name="apply-the-scp"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un rol de administrador de pruebas.  | Cree un rol de IAM denominado `TestAdminRole` en la cuenta destino de AWS. Adjunte la política de IAM gestionada por **AdministratorAccess**AWS a la nueva función. Para obtener instrucciones, consulte [Crear un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) en la documentación de IAM.  | Administrador de AWS | 
| Cree el rol de administrador de automatización. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html)El siguiente es un ejemplo de política de confianza que puede usar para probar el rol de la cuenta de `111122223333`.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::111122223333:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole",<br />            "Condition": {}<br />        }<br />    ]<br />}</pre> | Administrador de AWS | 
| Cree y adjunte el SCP. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 

### Pruebe el SCP
<a name="test-the-scp"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una VPC o subred. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 
| Administrar etiquetas. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 
| Implemente recursos en las subredes de destino. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 
| Administre el rol AutomationAdminRole . | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 

### Limpieza
<a name="clean-up"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Limpie los recursos desplegados. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrador de AWS | 

## Recursos relacionados
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-resources"></a>

**Documentación de AWS**
+ [Acoplamiento y desconexión SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_attach.html)
+ [Crear, actualizar y eliminar SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html)
+ [Implementación de controles de acceso basados en atributos de detección para subredes públicas mediante AWS Config](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-detective-attribute-based-access-controls-for-public-subnets-by-using-aws-config.html)
+ [Controles de detección](https://docs.aws.amazon.com/prescriptive-guidance/latest/aws-security-controls/detective-controls.html)
+ [Referencia de autorizaciones de servicio](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)
+ [Etiquetado de recursos de AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
+ [¿Qué es ABAC para AWS?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)

**Referencias adicionales de AWS**
+ [Proteger las etiquetas de recursos utilizadas para la autorización mediante una política de control de servicios en AWS Organizations](https://aws.amazon.com/es/blogs/security/securing-resource-tags-used-for-authorization-using-service-control-policy-in-aws-organizations/) (entrada del blog de AWS)

## Información adicional
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-additional"></a>

La siguiente política de control de servicios es un ejemplo que puede utilizar para probar este enfoque en su organización.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCActions",
      "Effect": "Deny",
      "Action": [
        "ec2:CreateVPC",
        "ec2:CreateRoute",
        "ec2:CreateSubnet",
        "ec2:CreateInternetGateway",
        "ec2:DeleteVPC",
        "ec2:DeleteRoute",
        "ec2:DeleteSubnet",
        "ec2:DeleteInternetGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "AllowNATGWOnIFASubnet",
      "Effect": "Deny",
      "NotAction": [
        "ec2:CreateNatGateway",
        "ec2:DeleteNatGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIfExists": {
          "aws:ResourceTag/SubnetType": "IFA"
        },
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "DenyChangesToAdminRole",
      "Effect": "Deny",
      "NotAction": [
        "iam:GetContextKeysForPrincipalPolicy",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListInstanceProfilesForRole",
        "iam:ListRolePolicies",
        "iam:ListRoleTags"
      ],
      "Resource": [
        "arn:aws:iam::*:role/AutomationAdminRole"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    }
  ]
}
```