Apresentando namespaces regionais de conta para buckets de uso geral do Amazon S3

Apresentando os Namespaces Regionais de Conta para Buckets de Uso Geral do Amazon S3
Hoje, estamos anunciando um novo recurso do Amazon Simple Storage Service (Amazon S3) que você pode usar para criar buckets de uso geral em seu próprio namespace regional de conta, simplificando a criação e o gerenciamento de buckets à medida que suas necessidades de armazenamento de dados crescem em tamanho e escopo. Você pode criar nomes de buckets de uso geral em várias AWS Regions com a garantia de que os nomes de buckets desejados estarão sempre disponíveis para seu uso. Com este recurso, você pode nomear e criar buckets de uso geral de forma previsível em seu próprio namespace regional de conta, anexando o sufixo exclusivo de sua conta ao nome do bucket solicitado. Por exemplo, posso criar o bucket mybucket-123456789012-us-east-1-an em meu namespace regional de conta. mybucket é o prefixo do nome do bucket que especifiquei, e então adiciono o sufixo regional da minha conta ao nome do bucket solicitado: -123456789012-us-east-1-an. Se outra conta tentar criar buckets usando o sufixo da minha conta, suas solicitações serão automaticamente rejeitadas. Suas equipes de segurança podem usar políticas do AWS Identity and Access Management (AWS IAM) e políticas de controle de serviço do AWS Organizations para garantir que seus funcionários criem buckets apenas em seu namespace regional de conta, usando a nova chave de condição s3:x-amz-bucket-namespace, ajudando as equipes a adotar o namespace regional de conta em toda a sua organização.
Crie seu Bucket S3 com Namespace Regional de Conta em Ação
Para começar, escolha Create bucket no console do Amazon S3. Para criar seu bucket em seu namespace regional de conta, escolha Account regional namespace. Se você escolher esta opção, poderá criar seu bucket com qualquer nome que seja exclusivo para sua conta e região. Esta configuração suporta todos os mesmos recursos que os buckets de uso geral no namespace global. A única diferença é que apenas sua conta pode usar nomes de buckets com o sufixo de sua conta. O prefixo do nome do bucket e o sufixo regional da conta combinados devem ter entre 3 e 63 caracteres.
Usando o AWS Command Line Interface (AWS CLI), você pode criar um bucket com namespace regional de conta especificando o cabeçalho de solicitação x-amz-bucket-namespace:account-regional e fornecendo 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
$ aws s3api create-bucket --bucket mybucket-123456789012-us-east-1-an \
--bucket-namespace account-regional \
--region us-east-1
Você pode usar o AWS SDK for Python (Boto3) para criar um bucket com namespace regional de conta usando a solicitação de 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}")
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}")
Você pode atualizar suas ferramentas de Infrastructure as Code (IaC), como o AWS CloudFormation, para simplificar a criação de buckets em seu namespace regional de conta. O AWS CloudFormation oferece os pseudo-parâmetros AWS::AccountId e AWS::Region, facilitando a construção de templates do CloudFormation que criam buckets de namespace regional de conta. O exemplo a seguir demonstra como você pode atualizar seus templates existentes do CloudFormation para começar a criar buckets em seu namespace regional de conta:
BucketName: !Sub "amzn-s3-demo-bucket-${AWS::AccountId}-${AWS::Region}-an"
BucketNamespace: "account-regional"
BucketName: !Sub "amzn-s3-demo-bucket-${AWS::AccountId}-${AWS::Region}-an"
BucketNamespace: "account-regional"
Alternativamente, você também pode usar a propriedade BucketNamePrefix para atualizar seu template do CloudFormation. Ao usar o BucketNamePrefix, você pode fornecer apenas a parte definida pelo cliente do nome do bucket, e ele adiciona automaticamente o sufixo do namespace regional de conta com base na AWS account e Region solicitantes especificadas.
BucketNamePrefix: 'amzn-s3-demo-bucket'
BucketNamespace: "account-regional"
BucketNamePrefix: 'amzn-s3-demo-bucket'
BucketNamespace: "account-regional"
Usando essas opções, você pode construir um template personalizado do CloudFormation para criar facilmente buckets de uso geral em seu namespace regional de conta.
Coisas a Saber
Você não pode renomear seus buckets globais existentes para nomes de buckets com namespace regional de conta, mas pode criar novos buckets de uso geral em seu namespace regional de conta. Além disso, o namespace regional de conta é suportado apenas para buckets de uso geral. Os S3 table buckets e vector buckets já existem em um namespace de nível de conta, e os S3 directory buckets existem em um namespace zonal. Para saber mais, visite Namespaces for general purpose buckets no Guia do Usuário do Amazon S3.
Já Disponível
A criação de buckets de uso geral em seu namespace regional de conta no Amazon S3 está agora disponível em 37 AWS Regions, incluindo as AWS China e AWS GovCloud (US) Regions. Você pode criar buckets de uso geral em seu namespace regional de conta sem custo adicional. Experimente hoje mesmo no console do Amazon S3 e envie feedback para o AWS re:Post para Amazon S3 ou através de seus contatos habituais de AWS Support.
— Channy
Precisa de ajuda com suas soluções de TI?
A VirtuAllIT Solutions oferece consultoria especializada em virtualização, cloud computing e infraestrutura tecnológica.

