Criar um bucket de diretório em uma zona local - Amazon Simple Storage Service

Criar um bucket de diretório em uma zona local

Em zonas locais dedicadas, você pode criar buckets de diretório para armazenar e recuperar objetos em um perímetro de dados específico a fim de ajudar a atender aos casos de uso de isolamento e residência de dados. Os buckets de diretório do S3 são o único tipo de bucket compatível em zonas locais e contêm um tipo de localização de bucket chamada LocalZone. Um nome de bucket de diretório consiste em um nome base que você fornece e um sufixo que contém o ID da zona em que o bucket está localizado e --x-s3. Você pode obter uma lista dos IDs de zonas locais usando a operação de API DescribeAvailabilityZones. Para ter mais informações, consulte Regras de nomenclatura de buckets de diretório.

nota
  • Para todos os serviços em zonas locais dedicadas da AWS, incluindo o S3, seu administrador deve habilitar sua Conta da AWS antes que você possa criar ou acessar qualquer recurso na zona local dedicada. Para ter mais informações, consulte Habilitar contas para zonas locais dedicadas.

  • Para os requisitos de residência de dados, recomendamos habilitar o acesso aos buckets somente por meio dos endpoints da VPC de gateway. Para ter mais informações, consulte Conectividade privada de uma VPC.

  • Para restringir o acesso a apenas os grupos de fronteira da rede da zona local, você pode usar a chave de condição s3express:AllAccessRestrictedToLocalZoneGroup nas políticas do IAM. Para ter mais informações, consulte Autenticação e autorização para buckets de diretório em zonas locais.

Veja a seguir maneiras de criar um bucket de diretório em uma única zona local com o AWS Management Console, a AWS CLI e os AWS SDKs.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Depois, escolha a região principal de uma zona local na qual você deseja criar um bucket de diretório.

    nota

    Para ter mais informações sobre as regiões principais, consulte Conceitos para buckets de diretório em zonas locais.

  3. No painel de navegação à esquerda, escolha Buckets.

  4. Selecione Create bucket (Criar bucket).

    A página Create bucket (Criar bucket) é aberta.

  5. Em Configuração geral, visualize a Região da AWS onde o bucket será criado.

  6. Em Tipo de bucket, escolha Diretório.

    nota
    • Se você escolher uma região que não oferece suporte a buckets de diretório, o tipo de bucket assumirá um bucket de uso geral como padrão. Para criar um bucket de diretório, escolha uma região compatível. Para conferir uma lista de regiões compatíveis com buckets de diretório, consulte Endpoints regionais e zonais para buckets de diretório.

    • Depois de criar o bucket, não será possível alterar o tipo.

  7. Em Localização do bucket, escolha uma zona local que você deseja usar.

    nota

    A zona local não poderá ser alterada após a criação do bucket.

  8. Em Localização do bucket, marque a caixa de seleção para confirmar que, no caso de uma interrupção da zona local, seus dados poderão ficar indisponíveis ou serem perdidos.

    Importante

    Embora os buckets de diretório sejam armazenados em vários dispositivos dentro de uma única zona local, eles não armazenam dados de forma redundante entre zonas locais.

  9. Em Nome do bucket, insira um nome para o bucket de diretório.

    Para ter mais informações sobre as regras de nomenclatura para buckets de diretório, consulte Regras de nomenclatura de buckets de uso geral. Um sufixo é adicionado automaticamente ao nome de base que você fornece ao criar um bucket de diretório usando o console. Esse sufixo inclui o ID da zona local que você escolheu.

    Depois de criado o bucket, você não pode mudar seu nome.

    Importante

    Não inclua informações confidenciais, como números de conta, no nome do bucket. O nome do bucket é visível nos URLs que apontam para os objetos no bucket.

  10. Em Propriedade do objeto, a configuração Imposto pelo proprietário do bucket está habilitada automaticamente e todas as listas de controle de acesso (ACLs) estão desabilitadas. Para os buckets de diretório, as ACLs estão desabilitadas e não é possível habilitá-las.

    Com a configuração Imposto pelo proprietário do bucket habilitada, o proprietário do bucket automaticamente tem a propriedade e o controle total sobre todos os objetos do bucket. As ACLs não afetam mais as permissões de acesso aos dados no bucket do S3. O bucket usa políticas exclusivamente para definir o controle de acesso. A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Para ter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

  11. Em Configurações de bloqueio do acesso público deste bucket, todas as configurações da funcionalidade Bloqueio de Acesso Público para o bucket de diretório estão automaticamente habilitadas. Não é possível modificar essas configurações para buckets de diretório. Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3.

  12. Em Criptografia padrão, os buckets de diretório usam a Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) para criptografar os dados por padrão. Você também tem a opção de criptografar dados em buckets de diretório com a Criptografia do lado do servidor com chaves do AWS Key Management Service (SSE-KMS).

  13. Escolha Criar bucket.

    Depois de criar o bucket, você pode adicionar arquivos e pastas a ele. Para ter mais informações, consulte Trabalhar com objetos em um bucket de diretório.

Este exemplo mostra como criar um bucket de diretório em uma zona local usando a AWS CLI. Para usar o comando, substitua os espaços reservados para entrada do usuário por suas próprias informações.

Ao criar um bucket de diretório, você deve fornecer detalhes de configuração e usar a seguinte convenção de nomenclatura: bucket-base-name--zone-id--x-s3.

aws s3api create-bucket --bucket bucket-base-name--zone-id--x-s3 --create-bucket-configuration 'Location={Type=LocalZone,Name=local-zone-id},Bucket={DataRedundancy=SingleLocalZone,Type=Directory}' --region parent-region-code

Para ter mais informações sobre o ID da zona local e o código da região principal, consulte Conceitos para buckets de diretório em zonas locais. Para ter mais informações sobre o comando da AWS CLI, consulte create-bucket na AWS CLI Command Reference.

SDK for Go

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK para Go.

var bucket = "amzn-s3-demo-bucket--usw2-az1--x-s3--zone-id--x-s3" // The full directory bucket name func runCreateBucket(c *s3.Client) { resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{ Bucket: &bucket, CreateBucketConfiguration: &types.CreateBucketConfiguration{ Location: &types.LocationInfo{ Name: aws.String("local-zone-id"), Type: types.LocationTypeLocalZone, }, Bucket: &types.BucketInfo{ DataRedundancy: types.DataRedundancySingleLocalZone, Type: types.BucketTypeDirectory, }, }, }) var terr *types.BucketAlreadyOwnedByYou if errors.As(err, &terr) { fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message)) fmt.Printf("noop...\n") // No operation performed, just printing a message return } if err != nil { log.Fatal(err) } fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location)) }
SDK for Java 2.x

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for Java 2.x.

public static void createBucket(S3Client s3Client, String bucketName) { //Bucket name format is {base-bucket-name}--{local-zone-id}--x-s3 //example: doc-example-bucket--local-zone-id--x-s3 is a valid name for a directory bucket created in a Local Zone. CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder() .location(LocationInfo.builder() .type(LocationType.LOCAL_ZONE) .name("local-zone-id").build()) //this must match the Local Zone ID in your bucket name .bucket(BucketInfo.builder() .type(BucketType.DIRECTORY) .dataRedundancy(DataRedundancy.SINGLE_LOCAL_ZONE) .build()).build(); try { CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build(); CreateBucketResponse response = s3Client.createBucket(bucketRequest); System.out.println(response); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
AWS SDK for JavaScript

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for JavaScript.

// file.mjs, run with Node.js v16 or higher // To use with the preview build, place this in a folder // inside the preview build directory, such as /aws-sdk-js-v3/workspace/ import { S3 } from "@aws-sdk/client-s3"; const region = "parent-region-code"; const zone = "local-zone-id"; const suffix = `${zone}--x-s3`; const s3 = new S3({ region }); const bucketName = `amzn-s3-demo-bucket--usw2-az1--x-s3--${suffix}`; // Full directory bucket name const createResponse = await s3.createBucket( { Bucket: bucketName, CreateBucketConfiguration: {Location: {Type: "LocalZone", Name: "local-zone-id"}, Bucket: { Type: "Directory", DataRedundancy: "SingleLocalZone" }} } );
AWS SDK for .NET

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for .NET.

using (var amazonS3Client = new AmazonS3Client()) { var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest { BucketName = "DOC-EXAMPLE-BUCKET--local-zone-id--x-s3", PutBucketConfiguration = new PutBucketConfiguration { BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleLocalZone, Type = BucketType.Directory }, Location = new LocationInfo { Name = "local-zone-id", Type = LocationType.LocalZone } } }).ConfigureAwait(false); }
SDK for PHP

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for PHP.

require 'vendor/autoload.php'; $s3Client = new S3Client([ 'region' => 'parent-region-code', ]); $result = $s3Client->createBucket([ 'Bucket' => 'doc-example-bucket--local-zone-id--x-s3', 'CreateBucketConfiguration' => [ 'Location' => ['Name'=> 'local-zone-id', 'Type'=> 'LocalZone'], 'Bucket' => ["DataRedundancy" => "SingleLocalZone" ,"Type" => "Directory"] ], ]);
SDK for Python

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def create_bucket(s3_client, bucket_name, local_zone): ''' Create a directory bucket in a specified Local Zone :param s3_client: boto3 S3 client :param bucket_name: Bucket to create; for example, 'doc-example-bucket--local-zone-id--x-s3' :param local_zone: String; Local Zone ID to create the bucket in :return: True if bucket is created, else False ''' try: bucket_config = { 'Location': { 'Type': 'LocalZone', 'Name': local_zone }, 'Bucket': { 'Type': 'Directory', 'DataRedundancy': 'SingleLocalZone' } } s3_client.create_bucket( Bucket = bucket_name, CreateBucketConfiguration = bucket_config ) except ClientError as e: logging.error(e) return False return True if __name__ == '__main__': bucket_name = 'BUCKET_NAME' region = 'parent-region-code' local_zone = 'local-zone-id' s3_client = boto3.client('s3', region_name = region) create_bucket(s3_client, bucket_name, local_zone)
SDK for Ruby

Este exemplo mostra como criar um bucket de diretório em uma zona local usando o AWS SDK for Ruby.

s3 = Aws::S3::Client.new(region:'parent-region-code') s3.create_bucket( bucket: "bucket-base-name--local-zone-id--x-s3", create_bucket_configuration: { location: { name: 'local-zone-id', type: 'LocalZone' }, bucket: { data_redundancy: 'SingleLocalZone', type: 'Directory' } } )