

# Desenvolver com o Amazon S3 on Outposts
<a name="S3OutpostsDeveloping"></a>

Com o Amazon S3 on Outposts, é possível criar buckets do S3 no AWS Outposts, além de armazenar e recuperar facilmente objetos no local para aplicações que exigem acesso a dados locais, processamento de dados local e residência de dados. O S3 on Outposts fornece uma nova classe de armazenamento, o S3 Outposts (`OUTPOSTS`), que usa as APIs do Amazon S3 e é projetado para armazenar dados de forma duradoura e redundante em vários dispositivos e servidores em seu AWS Outposts. Você se comunica com o bucket do Outposts usando um ponto de acesso e uma conexão de endpoint em uma nuvem privada virtual (VPC). É possível usar os mesmos recursos e APIs nos buckets do Outposts da mesma maneira que em buckets do Amazon S3, incluindo políticas de acesso, criptografia e marcação. Só é possível usar o S3 on Outposts por meio do Console de gerenciamento da AWS, da AWS Command Line Interface (AWS CLI), de AWS SDKs ou da API REST. Para obter mais informações, consulte [O que é o Amazon S3 on Outposts?](S3onOutposts.md)

Os tópicos a seguir fornecem informações sobre desenvolvimento com o S3 on Outposts.

**Topics**
+ [Regiões compatíveis com o S3 no Outposts](S3OutpostsRegions.md)
+ [Operações de API do Amazon S3 on Outposts](S3OutpostsAPI.md)
+ [Configurar o cliente de controle do S3 para S3 on Outposts usando o SDK para Java](S3OutpostsCongfigureS3ControlClientJava.md)
+ [Fazer solicitações ao S3 no Outposts por IPv6](S3OutpostsIPv6-access.md)

# Regiões compatíveis com o S3 no Outposts
<a name="S3OutpostsRegions"></a>

O S3 no Outposts é compatível com as Regiões da AWS a seguir.
+ Leste dos EUA (Norte da Virgínia) (us-east-1)
+ Leste dos EUA (Ohio) (us-east-2)
+ Oeste dos EUA (Norte da Califórnia) (us-west-1)
+ Oeste dos EUA (Oregon) (us-west-2)
+ África (Cidade do Cabo) (af-south-1)
+ Ásia-Pacífico (Jacarta) (ap-southeast-3)
+ Ásia-Pacífico (Mumbai) (ap-south-1)
+ Ásia-Pacífico (Osaka) (ap-northeast-3)
+ Ásia-Pacífico (Seul) (ap-northeast-2)
+ Ásia-Pacífico (Singapura) (ap-southeast-1)
+ Ásia-Pacífico (Sydney) (ap-southeast-2)
+ Ásia Pacific (Tóquio) (ap-northeast-1)
+ Canadá (Central) (ca-central-1)
+ Europa (Frankfurt) (eu-central-1)
+ Europa (Irlanda) (eu-west-1)
+ Europa (Londres) (eu-west-2)
+ UE (Milão) (eu-south-1)
+ Europa (Paris) (eu-west-3)
+ UE (Estocolmo) (eu-north-1)
+ Israel (Tel Aviv) (il-central-1)
+ Oriente Médio (Bahrein) (me-south-1)
+ América do Sul (São Paulo) (sa-east-1)
+ AWS GovCloud (Leste dos EUA) (us-gov-east-1)
+ AWS GovCloud (Oeste dos EUA) (us-gov-wast-1)

# Operações de API do Amazon S3 on Outposts
<a name="S3OutpostsAPI"></a>

Este tópico lista as operações de API do Amazon S3, do Amazon S3 Control e do Amazon S3 on Outposts que você pode usar com o Amazon S3 on Outposts.

**Topics**
+ [Operações de API do Amazon S3 para gerenciar objetos](#S3OutpostsAPIsObject)
+ [Operações de API do Amazon S3 Control para gerenciar buckets](#S3OutpostsAPIsBucket)
+ [Operações de API do S3 on Outposts para gerenciar Outposts](#S3OutpostsAPIs)

## Operações de API do Amazon S3 para gerenciar objetos
<a name="S3OutpostsAPIsObject"></a>

O S3 on Outposts foi projetado para usar as mesmas operações de API de objetos que o Amazon S3. É necessário usar pontos de acesso para acessar qualquer objeto em um bucket do Outpost. Ao usar uma operação de API de objeto com o S3 no Outposts, você fornece o nome do recurso da Amazon (ARN) do ponto de acesso do Outposts ou o alias do ponto de acesso. Para obter mais informações sobre alias de pontos de acesso, consulte [Usar um alias em estilo de bucket para seu ponto de acesso de bucket do S3 no Outposts](s3-outposts-access-points-alias.md).

O Amazon S3 on Outposts é compatível com as seguintes operações de API do Amazon S3:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)

## Operações de API do Amazon S3 Control para gerenciar buckets
<a name="S3OutpostsAPIsBucket"></a>

O S3 on Outposts é compatível com as operações de API a seguir do Amazon S3 Control para lidar com buckets.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html)

## Operações de API do S3 on Outposts para gerenciar Outposts
<a name="S3OutpostsAPIs"></a>

O S3 on Outposts é compatível com as operações de API a seguir do Amazon S3 on Outposts para o gerenciamento de endpoints.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html)
+ [ListOutpostsWithS3](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListOutpostsWithS3.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListSharedEndpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListSharedEndpoints.html)

# Configurar o cliente de controle do S3 para S3 on Outposts usando o SDK para Java
<a name="S3OutpostsCongfigureS3ControlClientJava"></a>

No exemplo a seguir, o cliente de controle do Amazon S3 é configurado para o Amazon S3 on Outposts com o uso do AWS SDK para Java. Para usar esse exemplo, substitua cada `user input placeholder` por suas próprias informações. 

```
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;

public AWSS3Control createS3ControlClient() {

    String accessKey = AWSAccessKey;
    String secretKey = SecretAccessKey;
    BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);

    return AWSS3ControlClient.builder().enableUseArnRegion()
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
            .build();

}
```

# Fazer solicitações ao S3 no Outposts por IPv6
<a name="S3OutpostsIPv6-access"></a>

O Amazon S3 no Outposts e os endpoints de pilha dupla do S3 no Outposts oferecem suporte a solicitações para buckets do S3 no Outposts com os protocolos IPv6 e IPv4. Com o suporte a IPv6 para o S3 no Outposts, você pode acessar e operar os buckets e os recursos do ambiente de gerenciamento por meio das APIs do S3 no Outposts em redes IPv6.

**nota**  
As [ações em objetos do S3 no Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html) (como `PutObject` ou `GetObject`) não são compatíveis em redes IPv6.

Não há nenhum custo adicional para acessar o S3 no Outposts em redes IPv6. Para obter mais informações sobre o S3 no Outposts, consulte [Preços de racks do AWS Outposts](https://aws.amazon.com/outposts/rack/pricing/).

**Topics**
+ [Conceitos básicos do IPv6](#S3Outposts-ipv6-access-getting-started)
+ [Usar endpoints de pilha dupla para fazer solicitações em uma rede IPv6](#S3Outposts-ipv6-access-api)
+ [Como usar endereços do IPv6 em políticas do IAM](#S3Outposts-ipv6-access-iam)
+ [Testar a compatibilidade com endereços IP](#S3Outposts-ipv6-access-test-compatabilty)
+ [Usar IPv6 com o AWS PrivateLink](#S3Outposts-ipv6-privatelink)
+ [Usar endpoints de pilha dupla do S3 no Outposts](s3-outposts-dual-stack-endpoints.md)

## Conceitos básicos do IPv6
<a name="S3Outposts-ipv6-access-getting-started"></a>

Para fazer uma solicitação a um bucket do S3 no Outposts por IPv6, é necessário usar um endpoint de pilha dupla. A próxima seção descreve como fazer solicitações por meio do IPv6 usando endpoints de pilha dupla. 

Veja a seguir algumas considerações importantes antes de tentar acessar um bucket do S3 no Outposts por IPv6:
+ O cliente e a rede que estão acessando o bucket devem ter permissão para usar o IPv6. 
+ As solicitações de estilo hospedado virtual e de estilo de caminho são compatíveis para acessarem o IPv6. Para obter mais informações, consulte [Usar endpoints de pilha dupla do S3 no Outposts](s3-outposts-dual-stack-endpoints.md).
+ Se você usar a filtragem de endereços IP de origem nas políticas de usuário do AWS Identity and Access Management (IAM) ou de bucket do S3 no Outposts, será necessário atualizar as políticas para incluir intervalos de endereços IPv6.
**nota**  
Esse requisito se aplica somente às operações de bucket do S3 no Outposts e aos recursos do ambiente de gerenciamento em redes IPv6. As [ações em objetos do Amazon S3 no Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html) não são compatíveis em redes IPv6.
+ Ao usar o IPv6, os arquivos de log de acesso ao servidor fornecem endereços IP em um formato do IPv6. É necessário atualizar as ferramentas, os scripts e o software existentes que você usa para analisar os arquivos de log do S3 no Outposts, para que eles possam analisar os endereços IP remotos formatados para IPv6. As ferramentas, os scripts e o software atualizados analisarão corretamente os endereços IP remotos formatados para IPv6.

## Usar endpoints de pilha dupla para fazer solicitações em uma rede IPv6
<a name="S3Outposts-ipv6-access-api"></a>

Para fazer solicitações com chamadas de API do S3 no Outposts por IPv6, você pode usar endpoints de pilha dupla pela AWS CLI ou pelo AWS SDK. As [operações de API de controle do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html#S3OutpostsAPIsBucket) e as [operações de API do S3 no Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html#S3OutpostsAPIs) funcionam da mesma forma, independentemente de você estar acessando o S3 no Outposts por meio de um protocolo IPv6 ou IPv4. No entanto, lembre-se de que as [ações em objetos do S3 no Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html) (como `PutObject` ou `GetObject`) não são compatíveis em redes IPv6.

Ao usar a AWS Command Line Interface (AWS CLI) e os AWS SDKs, você pode utilizar um parâmetro ou um sinalizador para mudar para um endpoint de pilha dupla. Você também pode especificar o endpoint de pilha dupla diretamente como uma substituição do endpoint do S3 no Outposts no arquivo de configuração.

Você pode usar um endpoint de pilha dupla para acessar um bucket do S3 no Outposts por IPv6 de qualquer um dos seguintes:
+ A AWS CLI, consulte [Usar endpoints de pilha dupla da AWS CLI](s3-outposts-dual-stack-endpoints.md#s3-outposts-dual-stack-endpoints-cli).
+ Os AWS SDKs, consulte [Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs](s3-outposts-dual-stack-endpoints.md#s3-outposts-dual-stack-endpoints-sdks).

## Como usar endereços do IPv6 em políticas do IAM
<a name="S3Outposts-ipv6-access-iam"></a>

Antes de tentar acessar um bucket do S3 no Outposts usando um protocolo IPv6, garanta que os usuários do IAM ou as políticas de bucket do S3 no Outposts usadas para filtragem de endereços IP estejam atualizadas para incluir intervalos de endereços IPv6. Se as políticas de filtragem de endereços IP não estiverem atualizadas para lidar com endereços IPv6, você poderá perder o acesso a um bucket do S3 no Outposts ao tentar usar o protocolo IPv6.

As políticas do IAM que filtram endereços IP usam [operadores de condição de endereço IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IPAddress). A política de bucket do S3 no Outposts a seguir identifica o intervalo 54.240.143.\$1 de endereços IPv4 permitidos usando operadores de condição de endereço IP. Todos os endereços IP fora desse intervalo terão o acesso ao bucket do S3 no Outposts negado (`DOC-EXAMPLE-BUCKET`). Como todos os endereços do IPv6 estão fora do intervalo permitido, essa política impede que os endereços do IPv6 possam acessar o `DOC-EXAMPLE-BUCKET`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3-outposts:*",
            "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "54.240.143.0/24"
                }
            }
        }
    ]
}
```

------

Você pode modificar o elemento `Condition` da política de bucket do S3 no Outposts para permitir intervalos de endereços IPv4 (`54.240.143.0/24`) e IPv6 (`2001:DB8:1234:5678::/64`), conforme mostrado no exemplo a seguir. Você pode usar o mesmo tipo de bloqueio de `Condition` mostrado no exemplo para atualizar as políticas de usuário e de bucket do IAM.

```
1.        "Condition": {
2.          "IpAddress": {
3.             "aws:SourceIp": [
4.               "54.240.143.0/24",
5.                "2001:DB8:1234:5678::/64"
6.              ]
7.           }
8.         }
```

Antes de usar o IPv6, você deve atualizar todas as políticas de usuário e de bucket do IAM que usam a filtragem de endereços IP para permitir os intervalos de endereços do IPv6. Recomendamos que você atualize as políticas do IAM com os intervalos de endereços do IPv6 de sua organização além dos intervalos de endereços do IPv4 existentes. Para obter um exemplo de uma política de bucket que permite acesso por meio do IPv6 e do IPv4, consulte [Restringir o acesso a endereços IP específicos](S3Outposts-example-bucket-policies.md#S3Outposts-example-bucket-policies-IP-1).

Você pode revisar suas políticas de usuário do IAM usando o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Para obter mais informações sobre o IAM, consulte o [Manual do usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/). Para obter informações sobre como editar políticas de bucket do S3 no Outposts, consulte [Adicionar ou editar uma política para um bucket do Amazon S3 on Outposts](S3OutpostsBucketPolicyEdit.md). 

## Testar a compatibilidade com endereços IP
<a name="S3Outposts-ipv6-access-test-compatabilty"></a>

Se você estiver usando uma instância do Linux ou do Unix ou a plataforma macOS X, poderá testar o acesso a um endpoint de pilha dupla por IPv6. Por exemplo, para testar a conexão com endpoints do Amazon S3 no Outposts via IPv6, use o comando `dig`:

```
dig s3-outposts.us-west-2.api.aws AAAA +short
```

Se o endpoint de pilha dupla em uma rede IPv6 estiver configurado corretamente, o comando `dig` retornará os endereços IPv6 conectados. Por exemplo:

```
dig s3-outposts.us-west-2.api.aws AAAA +short

2600:1f14:2588:4800:b3a9:1460:159f:ebce

2600:1f14:2588:4802:6df6:c1fd:ef8a:fc76

2600:1f14:2588:4801:d802:8ccf:4e04:817
```

## Usar IPv6 com o AWS PrivateLink
<a name="S3Outposts-ipv6-privatelink"></a>

O S3 no Outposts é compatível com o protocolo IPv6 para serviços e endpoints do AWS PrivateLink. Com o suporte ao AWS PrivateLink para o protocolo IPv6, você pode se conectar aos endpoints de serviço em sua VPC por meio de redes IPv6, tanto de conexões on-premises quanto de outras conexões privadas. O suporte a IPv6 para o [AWS PrivateLink para S3 no Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-outposts-privatelink-interface-endpoints.html) também permite a integração do AWS PrivateLink com endpoints de pilha dupla. Para conferir etapas sobre como habilitar o IPv6 para o AWS PrivateLink, consulte [Expedite your IPv6 adoption with AWS PrivateLink services and endpoints](https://aws.amazon.com/blogs/networking-and-content-delivery/expedite-your-ipv6-adoption-with-privatelink-services-and-endpoints/).

**nota**  
Para atualizar o tipo de endereço IP compatível de IPv4 para IPv6, consulte [Modify the supported IP address type](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#supported-ip-address-types) no *Guia do usuário do AWS PrivateLink*.

### Usar IPv6 com o AWS PrivateLink
<a name="3Outposts-ipv6-privatelink-dualstack-vpc"></a>

Se você estiver usando o AWS PrivateLink com IPv6, deverá criar um endpoint de interface da VPC IPv6 ou de pilha dupla. Para conferir etapas gerais sobre como criar um endpoint da VPC usando o Console de gerenciamento da AWS, consulte [Access an AWS service using an interface VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint) no *Guia do usuário do AWS PrivateLink*.

------
#### [ Console de gerenciamento da AWS ]

Use o procedimento a seguir para criar um endpoint de interface da VPC que se conecta ao S3 no Outposts.

1. Faça login no Console de gerenciamento da AWS e abra o console da VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Endpoints**.

1. Escolha **Criar endpoint**.

1. Em **Categoria do serviço**, escolha **Serviços do AWS**.

1. Em **Nome do serviço**, escolha o serviço S3 no Outposts (**com.amazonaws.us-east-1.s3-outposts**). 

1. Em VPC, escolha a VPC de onde você acessará o S3 no Outposts.

1. Em **Sub-redes**, selecione uma sub-rede por zona de disponibilidade da qual você acessará o S3 no Outposts. Não é possível selecionar várias sub-redes em uma mesma zona de disponibilidade. Será criada uma interface de rede do endpoint para cada sub-rede selecionada. Por padrão, os endereços IP dos intervalos de endereços IP da sub-rede são atribuídos às interfaces de rede do endpoint. Para designar um endereço IP para uma interface de rede do endpoint, selecione **Designar endereços IP** e insira um endereço IPv6 do intervalo de endereços da sub-rede. 

1. Em **Tipo de endereço IP**, escolha **Dualstack**. Atribua endereços IPv4 e IPv6 às interfaces de rede do endpoint. Só haverá suporte para esta opção se todas as sub-redes selecionadas tiverem intervalos de endereços IPv4 e IPv6.

1. Em **Grupos de segurança**, selecione os grupos de segurança que deseja associar às interfaces de rede do endpoint para o endpoint da VPC. Por padrão, o grupo de segurança padrão é associado à VPC.

1. Em **Política**, escolha **Acesso total** para permitir todas as operações de todas as entidades principais em todos os recursos no endpoint da VPC. Como alternativa, escolha **Personalizado** para anexar uma política de endpoint da VPC que controle as permissões das entidades principais para realizar ações em recursos pelo endpoint da VPC. Essa opção ficará disponível somente se o serviço for compatível com as políticas de endpoint da VPC. Para obter mais informações, consulte [Endpoint policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

1. (Opcional) Para adicionar uma tag, escolha **Adicionar nova tag** e insira a chave e o valor da tag.

1. Escolha **Criar endpoint**.

**Example : política de bucket do S3 no Outposts**  
Para permitir que o S3 no Outposts interaja com os endpoints da VPC, você pode atualizar sua política do S3 no Outposts da seguinte forma:  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3-outposts:*",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}
```

------
#### [ AWS CLI ]

**nota**  
Para habilitar a rede IPv6 em um endpoint da VPC, é necessário definir `IPv6` para o filtro `SupportedIpAddressType` para o S3 no Outposts.

O exemplo a seguir usa o comando `create-vpc-endpoint` para criar um endpoint de interface de pilha dupla.

```
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345678 \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.us-east-1.s3-outposts \
--subnet-id subnet-12345678 \
--security-group-id sg-12345678 \
--ip-address-type dualstack \
--dns-options "DnsRecordIpType=dualstack"
```

Dependendo da configuração do serviço AWS PrivateLink, as conexões de endpoint recém-criadas talvez precisem ser aceitas pelo provedor de serviços do endpoint da VPC antes de serem usadas. Para obter mais informações, consulte [Aceitar ou rejeitar solicitações de conexão](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#accept-reject-connection-requests) no *Guia do usuário do AWS PrivateLink*.

O exemplo a seguir usa o comando `modify-vpc-endpoint` para atualizar o endpoint da VPC somente IPv para um endpoint de pilha dupla. O endpoint de pilha dupla permite acesso às redes IPv4 e IPv6.

```
aws ec2 modify-vpc-endpoint \
--vpc-endpoint-id vpce-12345678 \
--add-subnet-ids subnet-12345678 \
--remove-subnet-ids subnet-12345678 \
--ip-address-type dualstack \
--dns-options "DnsRecordIpType=dualstack"
```

Para obter mais informações sobre como habilitar a rede IPv6 para o AWS PrivateLink, consulte [Expedite your IPv6 adoption with AWS PrivateLink services and endpoints](https://aws.amazon.com/blogs/networking-and-content-delivery/expedite-your-ipv6-adoption-with-privatelink-services-and-endpoints/).

------

# Usar endpoints de pilha dupla do S3 no Outposts
<a name="s3-outposts-dual-stack-endpoints"></a>

Os endpoints de pilha dupla do S3 no Outposts oferecem suporte a solicitações para buckets do S3 no Outposts por IPv6 e IPv4. Esta seção descreve como usar os endpoints de pilha dupla do S3 no Outposts.

**Topics**
+ [Endpoints de pilha dupla do S3 no Outposts](#s3-outposts-dual-stack-endpoints-description)
+ [Usar endpoints de pilha dupla da AWS CLI](#s3-outposts-dual-stack-endpoints-cli)
+ [Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs](#s3-outposts-dual-stack-endpoints-sdks)

## Endpoints de pilha dupla do S3 no Outposts
<a name="s3-outposts-dual-stack-endpoints-description"></a>

Quando você faz uma solicitação para um endpoint de pilha dupla, o URL do bucket do S3 no Outposts é resolvido para um endereço IPv6 ou IPv4. Para obter mais informações sobre como acessar um bucket do S3 no Outposts por IPv6, consulte [Fazer solicitações ao S3 no Outposts por IPv6](S3OutpostsIPv6-access.md).

Para acessar um bucket do S3 no Outposts por meio de um endpoint de pilha dupla, use um nome de endpoint do tipo caminho. O S3 no Outposts oferece suporte apenas a nomes regionais de endpoint de pilha dupla, o que significa que você deve especificar a região como parte do nome.

Para endpoints FIPS de pilha dupla do tipo caminho, use a seguinte convenção de nomenclatura:

```
s3-outposts-fips.region.api.aws
```

Para endpoints não FIPS de pilha dupla, use a seguinte convenção de nomenclatura:

```
s3-outposts.region.api.aws
```

**nota**  
Os nomes de endpoint do tipo hospedado virtual não são compatíveis com o S3 no Outposts.

## Usar endpoints de pilha dupla da AWS CLI
<a name="s3-outposts-dual-stack-endpoints-cli"></a>

Esta seção fornece exemplos de comandos da AWS CLI usados para fazer solicitações a um endpoint de pilha dupla. Para obter instruções de configuração da AWS CLI, consulte [Como começar a usar a AWS CLI e o SDK para Java](S3OutpostsGSCLIJava.md).

Define o valor de configuração `use_dualstack_endpoint` como `true` em um perfil no arquivo do AWS Config para direcionar todas as solicitações do Amazon S3 feitas pelos comandos `s3` e `s3api` da AWS CLI ao endpoint de pilha dupla para a região especificada. Especifique a região no arquivo de configuração ou em um comando usando a opção `--region`. 

Ao usar endpoints de pilha dupla com a AWS CLI, somente o tipo de endereçamento `path` é compatível. O tipo de endereçamento, definido no arquivo de configuração, determina se o nome do bucket está no nome do host ou no URL. Consulte mais informações em [https://docs.aws.amazon.com/cli/latest/reference/s3outposts/](https://docs.aws.amazon.com/cli/latest/reference/s3outposts/) no *Guia de Usuário AWS CLI*.

Para usar um endpoint de pilha dupla por meio da AWS CLI, use o parâmetro `--endpoint-url` com o endpoint `http://s3.dualstack.region.amazonaws.com` ou `https://s3-outposts-fips.region.api.aws` em qualquer comando `s3control` ou `s3outposts`.

Por exemplo:

```
$  aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws
```

## Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs
<a name="s3-outposts-dual-stack-endpoints-sdks"></a>

Esta seção fornece exemplos de como acessar um endpoint de pilha dupla usando os AWS SDKs. 

### AWS SDK for Java 2.xExemplo do endpoint de pilha dupla do
<a name="s3-outposts-dual-stack-endpoints-examples-javav2"></a>

Os exemplos a seguir mostram como usar as classes `S3ControlClient` e `S3OutpostsClient` para habilitar endpoints de pilha dupla ao criar um cliente do S3 no Outposts usando o AWS SDK for Java 2.x. Para obter instruções sobre como criar e testar um exemplo funcional em Java para o Amazon S3 no Outposts, consulte [Como começar a usar a AWS CLI e o SDK para Java](S3OutpostsGSCLIJava.md).

**Example : criar uma classe `S3ControlClient` com endpoints de pilha dupla habilitados**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse;
import software.amazon.awssdk.services.s3control.model.S3ControlException;


public class DualStackEndpointsExample1 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");
        String accountId = "111122223333";
        String navyId = "9876543210";

        try {
            // Create an S3ControlClient with dual-stack endpoints enabled.
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                                                             .region(clientRegion)
                                                             .dualstackEnabled(true)
                                                             .build();
            ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder()
                                                                                              .accountId(accountId)
                                                                                              .outpostId(navyId)
                                                                                              .build();

            ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest);
            System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3ControlException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

**Example : criar um `S3OutpostsClient` com endpoints de pilha dupla habilitados**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3outposts.S3OutpostsClient;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse;
import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException;


public class DualStackEndpointsExample2 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");

        try {
            // Create an S3OutpostsClient with dual-stack endpoints enabled.
            S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder()
                                                              .region(clientRegion)
                                                              .dualstackEnabled(true)
                                                              .build();
            ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build();

            ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest);
            System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3OutpostsException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

Se você estiver usando o AWS SDK for Java 2.x no Windows, talvez precise definir a seguinte propriedade da máquina virtual Java (JVM): 

```
java.net.preferIPv6Addresses=true
```