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

4 minutos de lectura
0

Quiero permitir el tráfico desde puntos de enlace o direcciones IP 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úe sus políticas de bucket para determinar si afectan a las solicitudes relacionadas con la consola.

Si su 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úrese de revisarla. Si se bloquea el acceso al bucket, consulte ¿Cómo puedo recuperar el acceso a mi bucket de Amazon S3 después de haber denegado accidentalmente el acceso a todos?

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 especifique, use la clave aws:SourceVPce en su 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": "*"  
    }  
  ]  
}

Para usar la política anterior con la condición aws:SourceVPce, adjunte un punto de enlace de puerta de enlace de VPC para Amazon S3 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 especifique, use la clave aws:vpcSourceIP en su 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": "*"  
    }  
  ]  
}

Para usar la política anterior con la condición aws:VPCSourceIP, debe adjuntar un punto de enlace de puerta de enlace de VPC para Amazon S3 a la tabla de enrutamiento de la subred de la instancia 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

Para permitir el tráfico únicamente desde las direcciones IP públicas que especifique, use la clave aws:SourceIp en su 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": "*"  
    }  
  ]  
}

Para permitir que entidades específicas de AWS Identity and Access Management (IAM) de la misma cuenta de AWS accedan al bucket, incluya la clave aws:PrincipalArn en el bloque de condiciones de su política:

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

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