Saltar al contenido

¿Cómo puedo permitir que solo direcciones IP o puntos de enlace de VPC específicos accedan a mi bucket de Amazon S3?

5 minutos de lectura
0

Quiero permitir el tráfico desde direcciones IP o puntos de enlace específicos de Amazon Virtual Private Cloud (Amazon VPC) a mi bucket de Amazon Simple Storage Service (Amazon S3).

Resolución

Use una política de bucket para especificar qué puntos de enlace de VPC, direcciones IP privadas o direcciones IP públicas pueden acceder al bucket de S3.

Advertencia: Las siguientes políticas de bucket de ejemplo deniegan expresamente el acceso a cualquier solicitud fuera de las direcciones IP o los puntos de enlace de VPC permitidos. Evalúa tus políticas de bucket para determinar si afectan a las solicitudes relacionadas con la consola.

Si la política deniega el acceso a todas las acciones de S3, se bloqueará el acceso al bucket. Antes de guardar la política de bucket, asegúrate de revisarla. Si se bloquea el acceso al bucket, consulta ¿Cómo recupero el acceso a mi bucket de Amazon S3 después de haber denegado accidentalmente el acceso a todo el mundo?

Restricción del acceso a puntos de enlace de VPC específicos

Para permitir el tráfico únicamente desde los puntos de enlace de VPC que especifiques, usa la clave aws:SourceVPce en tu política de bucket. El siguiente ejemplo de política de bucket deniega los permisos de carga al bucket, a menos que la solicitud de carga provenga de los puntos de enlace de VPC vpce-1111111 o vpce-2222222:

{   
  "Id": "VPCe",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "VPCe",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "StringNotEquals": {  
          "aws:SourceVpce": [  
            "vpce-1111111",  
            "vpce-2222222"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

Nota: Sustituye DOC-EXAMPLE-BUCKET por el nombre de tu bucket.

Para usar la política anterior con la condición aws:sourceVpce, crea un punto de enlace de puerta de enlace de VPC para Amazon S3. Adjunta dicho punto de enlace a la tabla de enrutamiento de la subred de la instancia de Amazon Elastic Compute Cloud (Amazon EC2). El punto de enlace debe estar en la misma región de AWS que el bucket.

Restricción del acceso a direcciones IP privadas específicas

Para permitir el tráfico únicamente desde las direcciones IP privadas que especifiques, usa la clave aws:VpcSourceIp en tu política de bucket. El siguiente ejemplo de política de bucket deniega los permisos de carga al bucket, a menos que la solicitud de carga provenga de las direcciones IP privadas 10.1.1.1/32 o 172.1.1.1/32:

{  
  "Id": "VpcSourceIp",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "VpcSourceIp",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "NotIpAddress": {  
          "aws:VpcSourceIp": [  
            "10.1.1.1/32",  
            "172.1.1.1/32"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

Nota: Sustituye DOC-EXAMPLE-BUCKET por el nombre de tu bucket.

Para usar la política anterior con la condición aws:VpcSourceIP, crea un punto de enlace de puerta de enlace de VPC para Amazon S3. Adjunta dicho punto de enlace a la tabla de enrutamiento de la subred de la instancia de EC2. El punto de enlace debe estar en la misma región que el bucket.

Restricción del acceso a direcciones IP públicas específicas o a un rango de direcciones IP

Para permitir el tráfico únicamente desde las direcciones IP públicas que especifiques, usa la clave aws:SourceIp en tu política de bucket. El siguiente ejemplo de política de bucket deniega los permisos de carga al bucket, a menos que la solicitud de carga provenga de las direcciones IP públicas 11.11.11.11/32 o 22.22.22.22/32:

{  
  "Id": "SourceIP",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceIP",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "NotIpAddress": {  
          "aws:SourceIp": [  
            "11.11.11.11/32",  
            "22.22.22.22/32"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

Nota: Sustituye DOC-EXAMPLE-BUCKET por el nombre de tu bucket.

El siguiente ejemplo de política de bucket deniega los permisos de carga al bucket, a menos que la solicitud de carga provenga de los rangos de direcciones IP 192.168.0.0/24 o 172.16.0.0/24.

{  
   "Id": "SourceIP",    
  "Version": "2012-10-17",    
  "Statement": [    
    {    
      "Sid": "SourceIP",    
      "Action": "s3:PutObject",    
      "Effect": "Deny",    
      "Resource": [    
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",    
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"    
      ],    
      "Condition": {    
        "NotIpAddress": {    
          "aws:SourceIp": [    
            "192.168.0.0/24",    
            "172.16.0.0/24"    
          ]    
        }    
      },    
      "Principal": "*"    
    }    
  ]    
}

Nota: Sustituye DOC-EXAMPLE-BUCKET por el nombre de tu bucket.

El siguiente bloque de condición permite que entidades específicas de AWS Identity and Access Management (IAM) de la misma cuenta de AWS accedan al bucket con la clave aws:PrincipalArn:

"Condition": {  
    "ArnNotLike": {  
        "aws:PrincipalArn": [  
            "arn:aws:iam::123456789012:role/role-name",  
            "arn:aws:iam::123456789012:user/user-name",  
            "arn:aws:iam::123456789012:root"  
        ]  
    }  
}

Nota: Para permitir que los usuarios usen las direcciones IP o los puntos de enlace de VPC para realizar acciones de S3 en el bucket, debes permitir expresamente los permisos de usuario. Puedes modificar una política de IAM u otra instrucción de la política de bucket para autorizar los permisos de usuario.

Restricción del acceso a todos los buckets de S3

Para restringir el acceso a todos los buckets de S3 de tu cuenta, configura una política de control de servicio (SCP) con AWS Organizations.