S3: Namespaces Regionais por Conta para Buckets Gerais
Introdução aos Namespaces Regionais por Conta para Amazon S3
Hoje, a AWS introduziu um novo recurso para o Amazon Simple Storage Service (Amazon S3) que otimiza a criação e gestão de buckets de propósito geral. Com esta funcionalidade, é possível criar buckets no seu próprio namespace regional por conta, simplificando significativamente o gerenciamento à medida que suas necessidades de armazenamento de dados crescem em tamanho e escopo. Este recurso permite que você nomeie e crie buckets de forma previsível em múltiplas regiões AWS, com a garantia de que os nomes desejados estarão sempre disponíveis para sua conta.
Entendendo os Namespaces Regionais por Conta
A principal inovação reside na capacidade de anexar um sufixo exclusivo da sua conta regional ao nome do bucket solicitado.
- Formato do Nome: Um bucket pode ser criado com um nome como
meubucket-123456789012-us-east-1-an.meubucketé o prefixo que você especifica.-123456789012-us-east-1-ané o sufixo regional exclusivo da sua conta.
- Segurança Intrínseca: Se outra conta tentar criar buckets usando o sufixo da sua conta, as requisições serão automaticamente rejeitadas. Equipes de segurança podem reforçar essa exclusividade usando políticas AWS Identity and Access Management (IAM) e Service Control Policies (SCPs) do AWS Organizations com a nova chave de condição
s3:x-amz-bucket-namespace. - Funcionalidades: Esta configuração suporta todas as mesmas funcionalidades que os buckets de propósito geral no namespace global. A única diferença é que apenas sua conta pode usar nomes de buckets com seu sufixo. O nome completo do bucket (prefixo e sufixo combinados) deve ter entre 3 e 63 caracteres.
Métodos de Criação de Buckets com Namespaces Regionais por Conta
Este novo recurso pode ser utilizado através do Console Amazon S3, AWS Command Line Interface (AWS CLI), AWS SDKs e ferramentas de Infraestrutura como Código (IaC).
Via Console Amazon S3
Para começar, escolha "Criar bucket" no console do Amazon S3 e selecione a opção "Account regional namespace". Com esta opção, você pode criar seu bucket com qualquer nome que seja único para sua conta e região.
Usando AWS Command Line Interface (AWS CLI)
Ao usar a AWS CLI, especifique o cabeçalho de requisição x-amz-bucket-namespace:account-regional e forneça um nome de bucket compatível.
aws s3api create-bucket --bucket mybucket-123456789012-us-east-1-an \
--bucket-namespace account-regional \
--region us-east-1
Com o AWS SDK para Python (Boto3)
O AWS SDK para Python (Boto3) permite a criação de buckets com namespace regional por conta utilizando a requisição da API CreateBucket.
import boto3
class AccountRegionalBucketCreator:
"""Creates S3 buckets using account-regional namespace feature."""
ACCOUNT_REGIONAL_SUFFIX = "-an"
def __init__(self, s3_client, sts_client):
self.s3_client = s3_client
self.sts_client = sts_client
def create_account_regional_bucket(self, prefix):
"""
Creates an account-regional S3 bucket with the specified prefix.
Resolves caller AWS account ID using the STS GetCallerIdentity API.
Format: <prefix>-<account_id>-<region>-an
"""
account_id = self.sts_client.get_caller_identity()['Account']
region = self.s3_client.meta.region_name
bucket_name = self._generate_account_regional_bucket_name(
prefix, account_id, region
)
params = {
"Bucket": bucket_name,
"BucketNamespace": "account-regional"
}
if region != "us-east-1":
params["CreateBucketConfiguration"] = {
"LocationConstraint": region
}
return self.s3_client.create_bucket(**params)
def _generate_account_regional_bucket_name(self, prefix, account_id, region):
return f"{prefix}-{account_id}-{region}{self.ACCOUNT_REGIONAL_SUFFIX}"
if __name__ == '__main__':
s3_client = boto3.client('s3')
sts_client = boto3.client('sts')
creator = AccountRegionalBucketCreator(s3_client, sts_client)
response = creator.create_account_regional_bucket('test-python-sdk')
print(f"Bucket created: {response}")
Via Infraestrutura como Código (IaC) com AWS CloudFormation
Atualize suas ferramentas IaC, como o AWS CloudFormation, para simplificar a criação de buckets no seu namespace regional por conta. O CloudFormation oferece os pseudo-parâmetros AWS::AccountId e AWS::Region, facilitando a construção de templates.
Opção 1: Usando !Sub para construir o nome completo
BucketName: !Sub "amzn-s3-demo-bucket-${AWS::AccountId}-${AWS::Region}-an"
BucketNamespace: "account-regional"
Opção 2: Usando a propriedade BucketNamePrefix
Com BucketNamePrefix, você fornece apenas a parte definida pelo cliente do nome do bucket, e o sufixo do namespace regional por conta é adicionado automaticamente com base na conta e região da requisição.
BucketNamePrefix: 'amzn-s3-demo-bucket'
BucketNamespace: "account-regional"
Pontos Essenciais a Saber
- Restrições de Renomeação: Não é possível renomear buckets globais existentes para nomes com namespace regional por conta. A funcionalidade se aplica à criação de novos buckets.
- Tipos de Buckets Suportados: O namespace regional por conta é exclusivo para buckets de propósito geral. Outros tipos, como S3 table buckets, vector buckets e directory buckets, já operam em namespaces de nível de conta ou zonal.
- Disponibilidade e Custo: A criação de buckets com namespace regional por conta está disponível sem custo adicional em 37 regiões AWS, incluindo as regiões AWS China e AWS GovCloud (US).
Impacto Prático para AITY e Nossos Clientes
Como Engenheiros de Software e Arquitetos de Soluções na AITY, a introdução dos namespaces regionais por conta para Amazon S3 é um facilitador robusto para a construção de infraestruturas resilientes e escaláveis. Este recurso simplifica a automação da criação de buckets, eliminando conflitos de nomes em ambientes multi-regionais e multi-contas, e estabelecendo uma governança de segurança mais forte. Isso acelera o ciclo de desenvolvimento e implantação, permitindo que nossas equipes se concentrem na entrega de valor inovador, com a confiança de que o armazenamento está padronizado e protegido em grande escala.
Aguardando Login...