Usar endpoints na AWS CLI - AWS Command Line Interface

Usar endpoints na AWS CLI

Para se conectar a um AWS service (Serviço da AWS) de forma programática, use um endpoint. Um endpoint é o URL do ponto de entrada para um serviço da Web da AWS. A AWS Command Line Interface (AWS CLI) usa automaticamente o endpoint padrão para cada serviço em uma Região da AWS, mas você pode especificar um endpoint alternativo para suas solicitações de API.

Definir o endpoint para um único comando

Para substituir qualquer configuração de endpoint ou variável de ambiente referente a um único comando, use a opção de linha de comando --endpoint-url. O exemplo de comando a seguir usa um URL personalizado do endpoint do Amazon S3.

$ aws s3 ls --endpoint-url http://localhost:4567

Definir um endpoint global para todos os Serviços da AWS

Para rotear solicitações de todos os serviços para um URL de endpoint personalizado, use uma das seguintes configurações:

  • Variáveis de ambiente:

    • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS: ignore os URLs de endpoints configurados.

      Linux or macOS
      $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      Windows Command Prompt

      Como definir para todas as sessões

      C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

      Como definir somente para a sessão atual

      C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      PowerShell
      PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
    • AWS_ENDPOINT_URL: defina o URL do endpoint global.

      Linux or macOS
      $ export AWS_ENDPOINT_URL=http://localhost:4567
      Windows Command Prompt

      Como definir para todas as sessões

      C:\> setx AWS_ENDPOINT_URL http://localhost:4567

      Como definir somente para a sessão atual

      C:\> set AWS_ENDPOINT_URL=http://localhost:4567
      PowerShell
      PS C:\> $Env:AWS_ENDPOINT_URL="http://localhost:4567"
  • O arquivo config:

Os endpoints específicos de serviço e a opção de linha de comando --endpoint-url substituem qualquer endpoint global.

Definido para usar endpoints FIPs para todos os Serviços da AWS

Para rotear solicitações para todos os serviços usarem endpoints FIPS, use uma das seguintes opções:

  • variável de ambiente AWS_USE_FIPS_ENDPOINT.

    Linux or macOS
    $ export AWS_USE_FIPS_ENDPOINT=true
    Windows Command Prompt

    Como definir para todas as sessões

    C:\> setx AWS_USE_FIPS_ENDPOINT true

    Como definir somente para a sessão atual

    C:\> set AWS_USE_FIPS_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="true"
  • configuração do arquivo use_fips_endpoint.

    use_fips_endpoint = true

Alguns serviços da AWS oferecem endpoints compatíveis com o Federal Information Processing Standard (FIPS) 140-2 em algumas Regiões da AWS. Quando o serviço da AWS é compatível com o FIPS, essa configuração especifica qual endpoint do FIPS a AWS CLI deve usar. Ao contrário dos endpoints-padrão da AWS, os endpoints do FIPS usam uma biblioteca de software TLS compatível com o FIPS 140-2. Esses endpoints podem ser necessários por empresas que interagem com o governo dos Estados Unidos.

Se essa configuração estiver ativada, mas não existir um endpoint FIPS para o serviço em sua Região da AWS, o comando AWS poderá falhar. Nesse caso, especifique manualmente o endpoint a ser usado no comando usando a opção --endpoint-url ou use endpoints específicos do serviço.

Para saber mais sobre como especificar endpoints FIPS por Região da AWS, consulte Endpoints FIPS por serviço.

Configurado para usar os endpoints de pilha dupla para todos os Serviços da AWS

Para rotear solicitações para todos os serviços usarem endpoints de pilha dupla, use uma das seguintes configurações:

  • variável de ambiente AWS_USE_DUALSTACK_ENDPOINT.

    Linux or macOS
    $ export AWS_USE_DUALSTACK_ENDPOINT=true
    Windows Command Prompt

    Como definir para todas as sessões

    C:\> setx AWS_USE_DUALSTACK_ENDPOINT true

    Como definir somente para a sessão atual

    C:\> set AWS_USE_DUALSTACK_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="true"
  • configuração do arquivo use_dualstack_endpoint.

    use_dualstack_endpoint = true

Permite o uso de endpoints de pilha dupla para enviar solicitações da AWS. Para saber mais sobre endpoints de pilha dupla, que suportam tráfego IPv4 e IPv6, consulte Usar endpoints de pilha dupla do Amazon S3 no Guia do usuário do Amazon Simple Storage Service. Endpoints de pilha dupla estão disponíveis para alguns serviços em algumas regiões. Se não existir um endpoint de pilha dupla para o serviço ou Região da AWS, a solicitação falhará. Ela fica desabilitada por padrão.

Definir endpoints específicos de serviço

A configuração de endpoint específico de serviço oferece a opção de usar um endpoint persistente de sua escolha para solicitações da AWS CLI. Essas configurações oferecem flexibilidade para permitir endpoints locais, endpoints da VPC e ambientes de desenvolvimento da AWS local de terceiros. Diferentes endpoints podem ser usados para ambientes de teste e produção. Você pode especificar um URL de endpoint para Serviços da AWS individuais.

Os endpoints específicos de serviço podem ser designados das seguintes maneiras:

Endpoints específicos de serviço: variáveis de ambiente

As variáveis de ambiente substituem as configurações no arquivo de configuração, mas não substituem as opções especificadas na linha de comando. Use variáveis de ambiente se quiser que todos os perfis usem os mesmos endpoints no dispositivo.

Veja a seguir as variáveis de ambiente específicas de serviço:

  • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS: ignora todos os URLs de endpoint configurados, a menos que especificado na linha de comando.

    Linux or macOS
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    Windows Command Prompt

    Como definir para todas as sessões

    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

    Como definir somente para a sessão atual

    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    PowerShell
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
  • AWS_ENDPOINT_URL_<SERVICE>: especifica um endpoint personalizado usado para um serviço específico, onde <SERVICE> é substituído pelo identificador AWS service (Serviço da AWS). Para todas as variáveis específicas de serviço, consulte Endpoints específicos de serviço: lista de identificadores específicos de serviço.

    O exemplo a seguir de variável de ambiente define um endpoint para o AWS Elastic Beanstalk:

    Linux or macOS
    $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    Windows Command Prompt

    Como definir para todas as sessões

    C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK http://localhost:4567

    Como definir somente para a sessão atual

    C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    PowerShell
    PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="http://localhost:4567"

Para obter mais informações sobre como definir variáveis de ambiente, consulte Configurar variáveis de ambiente para a AWS CLI.

Endpoints específicos de serviço: arquivo compartilhado config

No arquivo compartilhado config, endpoint_url é usado em várias seções. Para definir um endpoint específico de serviço, use a configuração endpoint_url aninhada em uma chave de identificação de serviço em uma seção services. Para obter detalhes sobre como definir uma seção services no arquivo compartilhado Tipo de seção: services, consulte config.

O exemplo a seguir usa uma seção services para configurar um URL de endpoint específico do serviço para o Amazon S3 e um endpoint global personalizado usado para todos os outros serviços:

[profile dev1] endpoint_url = http://localhost:1234 services = s3-specific [services testing-s3] s3 = endpoint_url = http://localhost:4567

Um único perfil pode configurar endpoints para vários serviços. O exemplo a seguir define os URLs de endpoint específicos de serviço para o Amazon S3 e o AWS Elastic Beanstalk no mesmo perfil.

Para obter uma lista de todas as chaves de identificação de serviço a serem usadas na seção services, consulte Lista de identificadores específicos de serviço.

[profile dev1] services = testing-s3-and-eb [services testing-s3-and-eb] s3 = endpoint_url = http://localhost:4567 elastic_beanstalk = endpoint_url = http://localhost:8000

A seção de configuração de serviço pode ser usada em vários perfis. O exemplo a seguir tem dois perfis que usam a mesma definição de services:

[profile dev1] output = json services = testing-s3 [profile dev2] output = text services = testing-s3 [services testing-s3] s3 = endpoint_url = https://localhost:4567

Endpoints específicos de serviço: lista de identificadores específicos de serviço

O identificador AWS service (Serviço da AWS) é baseado no serviceId do modelo de API, substituindo todos os espaços por sublinhados e colocando todas as letras em minúsculas.

O exemplo de identificador de serviço a seguir usa o AWS Elastic Beanstalk. O AWS Elastic Beanstalk tem um serviceId de Elastic Beanstalk; portanto, a chave de identificação de serviço é elastic_beanstalk.

A tabela a seguir lista todos os identificadores, chaves do arquivo config e variáveis de ambiente específicos de serviço.

Precedência de configurações e definições do endpoint

As configurações do endpoint estão em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. As configurações do endpoint da AWS CLI têm precedência na seguinte ordem:

  1. A opção da linha de comando --endpoint-url.

  2. Se habilitada, a variável de ambiente global AWS_IGNORE_CONFIGURED_ENDPOINT_URLS ou a configuração do perfil ignore_configure_endpoint_urls para ignorar os endpoints personalizados.

  3. O valor fornecido por uma variável de ambiente específica do serviço AWS_ENDPOINT_URL_<SERVICE>, como AWS_ENDPOINT_URL_DYNAMODB.

  4. Os valores fornecidos pelas variáveis de ambiente AWS_USE_DUALSTACK_ENDPOINT, AWS_USE_FIPS_ENDPOINT e AWS_ENDPOINT_URL.

  5. O valor do endpoint específico de serviço fornecido pela configuração endpoint_url em uma seção services do arquivo compartilhado config.

  6. O valor fornecido pela configuração endpoint_url em um profile do arquivo compartilhado config.

  7. Configurações use_dualstack_endpoint, use_fips_endpoint e endpoint_url.

  8. Qualquer URL de endpoint padrão para o respectivo AWS service (Serviço da AWS) é usado por último. Para obter uma lista dos endpoints de serviços padrão disponíveis em cada região, consulte Regiões e endpoints da AWS no Referência geral da Amazon Web Services.