Espacios de nombres para buckets de uso general
De forma predeterminada, los buckets de uso general se encuentran en un espacio de nombres global. Esto significa que cada nombre de bucket debe ser único en todas las cuentas de AWS de todas las regiones de AWS dentro de una partición. Una partición es una agrupación de regiones. AWS actualmente tiene cuatro particiones: aws (regiones estándar), aws-cn (regiones de China) y aws-us-gov (AWS GovCloud [EE. UU.]) y aws-eusc (nube soberana europea). Al crear un bucket de uso general, puede optar por crearlo en el espacio de nombres global compartido. También puede elegir crear un bucket en el espacio de nombres regional de su cuenta. El espacio de nombres regional de su cuenta es una subdivisión del espacio de nombres global en la que solo su cuenta puede crear buckets.
Temas
Buckets globales de uso general
De forma predeterminada, los buckets globales de uso general se crean en el espacio de nombres global compartido. Tras crear un bucket de uso general en el espacio de nombres global compartido, ningún otro usuario podrá crearlo dentro de la partición. Cuando se elimina un bucket global de uso general, el nombre del bucket vuelve a estar disponible en el espacio de nombres global para que cualquier persona pueda volver a crearlo.
Al crear buckets globales de uso general, puede solicitar cualquier nombre que cumpla con las normas de denominación de buckets. Estas reglas incluyen la especificación de un nombre con una longitud de entre 3 (mínimo) y 63 (máximo) caracteres. El nombre solo puede contener letras minúsculas, números, puntos (.) y guiones (-). Los nombres de los buckets deben comenzar y terminar con una letra o un número y no pueden contener dos puntos consecutivos. Para obtener más información sobre las reglas de denominación de los buckets, consulte Reglas de nomenclatura de buckets de uso general.
Al especificar un nombre de bucket global de uso general, debe seleccionar un nombre único que no esté ya en uso para la partición. Si intenta crear un bucket que ya existe y que es propiedad de otra persona, recibirá un error HTTP 409 BucketAlreadyExists. Si intenta crear un bucket que ya existe y del que usted es propietario, recibirá un error HTTP 409 BucketAlreadyOwnedByYou.
Puede crear buckets globales de uso general para disponer de la máxima flexibilidad a la hora de elegir los nombres de los buckets que desee. Dado que se trata de un espacio de nombres global compartido, otras cuentas pueden crear nombres de bucket similares. Otras cuentas también pueden volver a crear nombres de buckets que haya eliminado anteriormente. No debe confiar en convenciones específicas de nomenclatura de buckets para propósitos de verificación de la seguridad o disponibilidad. No escriba código con la suposición de que el nombre de bucket elegido esté disponible, a menos que ya haya creado el bucket. Una forma de crear nombres de buckets que no sean predecibles consiste en añadir un identificador único global (GUID) al nombre del bucket. Por ejemplo, amzn-s3-demo-bucket-a1b2c3d4-5678-90ab-cdef-example11111. Para obtener más información, consulte Creación de un bucket que utilice un GUID en el nombre del bucket.
Buckets de uso general del espacio de nombres regional de la cuenta
Aunque los buckets de uso general Amazon S3 se encuentran en un espacio de nombres global compartido, puede, si lo desea, crear buckets en el espacio de nombres regional de su cuenta. El espacio de nombres regional de la cuenta es una subdivisión reservada del espacio de nombres del bucket global. Solo su cuenta puede crear buckets de uso general en este espacio de nombres. Los nuevos buckets de uso general creados en el espacio de nombres regional de su cuenta son exclusivos de su cuenta. Estos buckets nunca podrán volver a crearse desde otra cuenta. Estos buckets admiten todas las funciones de S3 y servicios de AWS que ya admiten los buckets de uso general del espacio de nombres global compartido. Las aplicaciones no requieren ningún cambio para interactuar con los buckets del espacio de nombres regional de su cuenta.
nota
Puede crear buckets en el espacio de nombres regional de su cuenta en todas las regiones de AWS, excepto en Medio Oriente (Baréin) y Medio Oriente (EAU).
La creación de buckets en el espacio de nombres regional de su cuenta es una práctica recomendada en materia de seguridad. Estos nombres de buckets solo los puede utilizar su cuenta. Puede crear buckets en el espacio de nombres regional de su cuenta para utilizar fácilmente plantillas de nombres de buckets de uso general en varias regiones de AWS. Puede tener la seguridad de que ninguna otra cuenta podrá crear nombres de buckets en su espacio de nombres. Si otra cuenta intenta crear un bucket con el sufijo regional de su cuenta, la solicitud CreateBucket se rechazará.
Convención de nomenclatura del espacio de nombres regional de la cuenta
Los buckets de uso general del espacio de nombres regional de su cuenta deben seguir una convención de nomenclatura específica. Estos buckets se componen de un prefijo de nombre de bucket que usted crea y un sufijo que contiene su ID de cuenta de AWS de 12 dígitos, el código de región de AWS y termina en -an.
bucket-name-prefix-accountId-region-an
Por ejemplo, en el espacio de nombres regional de la cuenta de AWS 111122223333 de la región us-west-2, existe el siguiente bucket de uso general:
amzn-s3-demo-bucket-111122223333-us-west-2-an
Para crear un bucket en el espacio de nombres regional de su cuenta, debe enviar una solicitud CreateBucket. Especifique el encabezado de solicitud x-amz-bucket-namespace con el valor establecido en account-regional. Especifique también un nombre de bucket con formato de espacio de nombres regional de la cuenta: <customer-chosen-name>-<AWS-Account-ID>-<AWS-Region>-an.
nota
Cuando crea un bucket de uso general en el espacio de nombres regional de su cuenta mediante la consola, se añade automáticamente un sufijo al prefijo del nombre del bucket que usted indique. Este sufijo incluye su ID de cuenta de AWS y la región de AWS en la que ha seleccionado crear su bucket. Cuando cree un bucket de uso general en el espacio de nombres regional de su cuenta mediante la API CreateBucket, deberá proporcionar el sufijo completo. Esto incluye su ID de cuenta de AWS y la región de AWS en su solicitud. Para obtener una lista de los códigos de región de AWS, consulte Formato de código de región de AWS.
Integración del espacio de nombres regional de la cuenta en sus plantillas de CloudFormation
Puede actualizar sus herramientas de infraestructura como código, como CloudFormation, para simplificar la creación de buckets en el espacio de nombres regional de su cuenta. CloudFormation ofrece los pseudoparámetros AWS::AccountId y AWS::Region. Estos parámetros facilitan la creación de plantillas de CloudFormation que crean buckets de espacio de nombres regional para cuentas. Para obtener más información, consulte Obtener valores de AWS usando pseudoparámetros.
Ejemplo 1 de uso de BucketName con Sub:
BucketName: !Sub "amzn-s3-demo-bucket-${AWS::AccountId}-${AWS::Region}-an" BucketNamespace: "account-regional"
Ejemplo 2 de uso de BucketNamePrefix:
BucketNamePrefix: 'amzn-s3-demo-bucket' BucketNamespace: "account-regional"
Como alternativa, también puede utilizar la propiedad BucketNamePrefix para actualizar su plantilla de CloudFormation. BucketNamePrefix le permite indicar fácilmente la parte del nombre del bucket definida por el cliente. A continuación, añade automáticamente el sufijo del espacio de nombres regional de la cuenta en función de la cuenta de AWS solicitante y la región de AWS especificadas.
Con estas opciones, puede crear una plantilla personalizada de CloudFormation para generar fácilmente buckets de uso general en el espacio de nombres regional de su cuenta. Para obtener más información, consulte AWS::S3::Bucket en la Guía del usuario de CloudFormation.
Restricciones y consideraciones
Al crear buckets en el espacio de nombres global compartido, deben tenerse en cuenta las siguientes consideraciones:
-
El nombre de un bucket en el espacio de nombres global compartido no puede ser utilizado por otra cuenta de AWS de la misma partición hasta que se elimine dicho bucket. Tenga en cuenta que, tras eliminar un bucket en el espacio de nombres global compartido, otra cuenta de AWS de la misma partición puede utilizar el mismo nombre para crear un nuevo bucket y, por lo tanto, podría recibir solicitudes destinadas al bucket eliminado.
-
Al desarrollar aplicaciones que vayan a crear buckets en el espacio de nombres global compartido, tenga en cuenta que los nombres de bucket que desee pueden estar ya en uso por otra cuenta y que otras cuentas pueden tener nombres de bucket similares a los suyos.
-
Puesto que Amazon S3 identifica los buckets en función de sus nombres, una aplicación que utilice un nombre de bucket incorrecto en una solicitud podría realizar operaciones involuntarias en un bucket diferente al esperado. Para ayudar a evitar interacciones involuntarias del bucket en situaciones como esta, puede usar la condición de propietario del bucket. Para obtener más información, consulte Verificación de la propiedad del bucket con la condición de propietario del bucket.
Al crear buckets en el espacio de nombres regional de su cuenta, se aplican las siguientes restricciones y consideraciones:
-
Cualquier intento de volver a crear un bucket de espacio de nombres regional de su cuenta que ya posea en cualquier región de AWS devolverá un error HTTP 409 BucketAlreadyOwnedByYou.
-
Debe utilizar los puntos de conexión regionales de S3 para crear buckets en el espacio de nombres regional de su cuenta. Para tener una compatibilidad con versiones anteriores, puede utilizar el punto de conexión global heredado para crear buckets en el espacio de nombres regional de su cuenta, en la región Este de EE. UU. (Norte de Virginia).
-
El sufijo regional de su cuenta contabiliza para el número máximo de 63 caracteres permitidos en los nombres de los buckets de uso general. Por lo tanto, si el sufijo regional de su cuenta es
-012345678910-us-east-1-an, dispondrá de 37 caracteres para el prefijo del nombre de su bucket.
Formato de código de región de AWS
Para crear un bucket en el espacio de nombres regional de su cuenta, debe incluir la región de AWS en el sufijo en el que quiera crear el bucket de uso general. Debe especificar el código completo de la región de AWS (por ejemplo, us-west-2) en el sufijo. Consulte Regiones de AWS para ver una lista completa de los códigos de región de AWS. Los siguientes nombres de bucket muestran dos ejemplos del formato del código de región de AWS que debe utilizar al crear buckets en el espacio de nombres regional de su cuenta:
-
amzn-s3-demo-bucket-012345678910-ap-southeast-1-an -
amzn-s3-demo-bucket-987654321012-eu-north-1-an
Requisito de creación de buckets en el espacio de nombres regional de su cuenta
Puede establecer que sus entidades principales de IAM solo creen buckets en el espacio de nombres regional de su cuenta. Utilice la clave de condición s3:x-amz-bucket-namespace. Los siguientes ejemplos muestran cómo puede imponer la creación de buckets regionales de cuenta en una política de IAM, una política de control de recursos o una política de control de servicios.
IAMPolítica de
La siguiente política de IAM deniega el permiso s3:CreateBucket a la entidad principal de IAM si la solicitud no incluye el encabezado x-amz-bucket-namespace establecido en account-regional.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireAccountRegionalBucketCreation", "Effect": "Deny", "Action": "s3:CreateBucket", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-bucket-namespace": "account-regional" } } } ] }
Política de control de recursos
La siguiente política de control de recursos deniega el permiso s3:CreateBucket a todos los usuarios si la solicitud no incluye el encabezado x-amz-bucket-namespace establecido en account-regional.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OnlyCreateBucketsInAccountRegionalNamespace", "Effect": "Deny", "Principal": "*", "Action": "s3:CreateBucket", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-bucket-namespace": "account-regional" } } } ] }
Política de control de servicios
La siguiente política de control de servicios deniega el permiso s3:CreateBucket a todos los usuarios si la solicitud no incluye el encabezado x-amz-bucket-namespace establecido en account-regional.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireAccountRegionalBucketCreation", "Effect": "Deny", "Action": "s3:CreateBucket", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-bucket-namespace": "account-regional" } } } ] }
Creación de un bucket en el espacio de nombres regional de su cuenta
En los siguientes ejemplos se muestra cómo crear un bucket de uso general en el espacio de nombres regional de su cuenta.
Uso de AWS CLI
En el siguiente ejemplo de la AWS CLI se crea un bucket de uso general en el espacio de nombres regional de la cuenta de AWS 012345678910, en la región Oeste de EE. UU. (Norte de California) (us-west-1). Para utilizar este comando de ejemplo, sustituya user input placeholders por su propia información.
aws s3api create-bucket \ --bucketamzn-s3-demo-bucket-012345678910-us-west-1-an\ --bucket-namespace account-regional --regionus-west-1\ --create-bucket-configuration LocationConstraint=us-west-1