Configurar o AWS SDK para Ruby - AWS SDK para Ruby

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar o AWS SDK para Ruby

Saiba como configurar o AWS SDK para Ruby. Você precisa estabelecer como seu código deve ser autenticado com a AWS ao desenvolver com os Serviços da AWS. Você também deve definir o que Região da AWS deseja usar.

O SDK para Ruby inclui classes de cliente que fornecem interfaces para os Serviços da AWS. Cada classe de cliente oferece suporte a uma determinada AWS service (Serviço da AWS) e segue a convençãoAws::<service identifier>::Client. Por exemplo, Aws::S3::Clientfornece uma interface para o serviço Amazon Simple Storage Service e Aws::SQS::Clientfornece uma interface para o serviço Amazon Simple Queue Service.

Todas as classes de clientes para todos Serviços da AWS são thread-safe.

Ao instanciar uma classe de cliente, AWS as credenciais devem ser fornecidas. As credenciais podem ser fornecidas a partir do seu código, do ambiente ou do AWS config arquivo compartilhado e do AWS credentials arquivo compartilhado. Para saber a ordem em que o SDK verifica os provedores de autenticação, consulteCadeia de provedores de credenciais.

O Compartilhado config e credentials os arquivos podem ser usados para configurações. Para todas as configurações do AWS SDK, consulte a referência de configurações no Guia AWS SDKs de referência de ferramentas. Perfis diferentes podem ser usados para armazenar configurações diferentes. A variável de AWS_PROFILE ambiente pode ser usada para especificar qual perfil o SDK carrega. O perfil ativo também pode ser definido usando a profile opção deAws.config.

Precedência de configurações

As configurações globais definem recursos, provedores de credenciais e outras funcionalidades que são suportadas pela maioria SDKs e têm um amplo impacto em todas Serviços da AWS as áreas. Todos AWS SDKs têm uma série de lugares (ou fontes) que eles verificam para encontrar um valor para as configurações globais. Nem todas as configurações estão disponíveis em todas as fontes. A seguir está a configuração da precedência de pesquisa:

  1. Qualquer configuração explícita definida no código ou no próprio cliente de serviço tem precedência sobre qualquer outra coisa.

    1. Todos os parâmetros passados diretamente para um construtor de cliente têm a maior precedência.

    2. Aws.configé verificado quanto às configurações globais ou específicas do serviço.

  2. A variável de ambiente está marcada.

  3. O AWS credentials arquivo compartilhado é verificado.

  4. O AWS config arquivo compartilhado é verificado.

  5. Qualquer valor padrão fornecido pelo próprio código-fonte do AWS SDK for Ruby é usado por último.

Aws.config

Para fornecer configuração global em seu código para todas as AWS classes, use a Aws.configque está disponível no aws-sdk-core gem.

Aws.configsuporta duas sintaxes para usos diferentes. As configurações globais podem ser aplicadas a todos Serviços da AWS ou a um serviço específico. Para ver a lista completa das configurações compatíveis, consulte Client Optionsa Referência AWS SDK for Ruby da API.

Configurações globais por meio de Aws.config

Para definir configurações independentes de serviçoAws.config, use a seguinte sintaxe:

Aws.config[:<global setting name>] = <value>

Essas configurações são mescladas em qualquer cliente de serviço criado.

Exemplo de uma configuração global:

Aws.config[:region] = 'us-west-2'

Se você tentar usar um nome de configuração que não seja suportado globalmente, ocorrerá um erro ao tentar criar uma instância de um tipo de serviço que não oferece suporte a ela. Se isso acontecer, use a sintaxe específica do serviço em vez disso.

Configurações específicas do serviço por meio de Aws.config

Para definir configurações específicas do serviçoAws.config, use a seguinte sintaxe:

Aws.config[:<service identifier>] = { <global setting name>: <value> }

Essas configurações são mescladas em todos os clientes de serviço criados desse tipo de serviço.

Exemplo de uma configuração que se aplica somente ao Amazon S3:

Aws.config[:s3] = { force_path_style: true }

Eles <service identifier> podem ser identificados examinando o nome da gem correspondente do AWS SDK for Ruby e usando o sufixo que segue "”. aws-sdk- Por exemplo:

  • Paraaws-sdk-s3, a string do identificador do serviço é "s3”.

  • Paraaws-sdk-ecs, a string do identificador de serviço é "ecs”.

Cadeia de provedores de credenciais

Todos SDKs têm uma série de locais (ou fontes) que eles verificam para obter credenciais válidas para usar para fazer uma solicitação a um AWS service (Serviço da AWS). Depois que as credenciais válidas são encontradas, a pesquisa é interrompida. Essa busca sistemática é chamada de cadeia de provedores de credenciais padrão.

nota

Se você seguiu a abordagem recomendada para novos usuários começarem, configurou a autenticação do AWS IAM Identity Center durante a Autenticação do SDK com AWS do tópico Conceitos básicos. Outros métodos de autenticação são úteis para situações diferentes. Para evitar riscos de segurança, recomendamos sempre usar credenciais de curto prazo. Para outros procedimentos de método de autenticação, consulte Autenticação e acesso no AWS SDKs Guia de referência de ferramentas.

Para cada etapa da cadeia, há várias maneiras de atribuir os valores. A definição de valores diretamente no código sempre tem precedência, seguida pela configuração como variáveis de ambiente e, em seguida, no AWS config arquivo compartilhado.

O Guia de Referência de Ferramentas AWS SDKs e Ferramentas tem informações sobre as configurações do SDK usadas por todos AWS SDKs e pelo AWS CLI. Para saber mais sobre como configurar o SDK por meio do AWS config arquivo compartilhado, consulte Arquivos de configuração e credenciais compartilhados. Para saber mais sobre como configurar o SDK por meio da definição de variáveis de ambiente, consulte Suporte a variáveis de ambiente.

Para se autenticar AWS, o AWS SDK for Ruby verifica os provedores de credenciais na ordem listada na tabela a seguir.

Provedor de credenciais por precedência AWS SDKs Guia de referência de ferramentas e ferramentas AWS SDK for Ruby API Reference
AWS chaves de acesso (credenciais temporárias e de longo prazo) Chaves de acesso da AWS

Aws::Credentials

Aws::SharedCredentials

Token de identidade da Web de AWS Security Token Service (AWS STS) Assuma a função de provedor de credenciais

Usandorole_arn, role_session_name e web_identity_token_file

Aws::AssumeRoleWebIdentityCredentials
AWS IAM Identity Center. Neste guia, consulte Autenticação do SDK com AWS. Fornecedor de credenciais do IAM Identity Center Aws::SSOCredentials
Provedor de entidades confiável (como AWS_ROLE_ARN). Neste guia, consulte Criação de um token de AWS STS acesso. Assuma a função de provedor de credenciais

Usando role_arn e role_session_name

Aws::AssumeRoleCredentials
Provedor de credenciais de processo Provedor de credenciais de processo Aws::ProcessCredentials
Credenciais do Amazon Elastic Container Service (Amazon ECS) Provedor de credenciais de contêiner Aws::ECSCredentials
Credenciais de perfil de instância do Amazon Elastic Compute Cloud (Amazon EC2) (provedor de credenciais IMDS) Provedor de credenciais do IMDS Aws::InstanceProfileCredentials

Se a variável de AWS_SDK_CONFIG_OPT_OUT ambiente AWS SDK for Ruby estiver definida, AWS config o arquivo compartilhado, ~/.aws/config normalmente em, não será analisado em busca de credenciais.

Criação de um token de AWS STS acesso

Assumir uma função envolve o uso de um conjunto de credenciais de segurança temporárias que você pode usar para acessar AWS recursos aos quais você normalmente não teria acesso. Essas credenciais de segurança temporárias consistem em um ID de chave de acesso, uma chave de acesso secreta e um token de segurança. Você pode usar o método Aws::AssumeRoleCredentials para criar um token de acesso do AWS Security Token Service (AWS STS).

O exemplo a seguir usa um token de acesso para criar um objeto de cliente Amazon S3, onde linked::account::arn é o nome de recurso da Amazon (ARN) da função a assumir e session-name é um identificador para a sessão da função assumida.

role_credentials = Aws::AssumeRoleCredentials.new( client: Aws::STS::Client.new, role_arn: "linked::account::arn", role_session_name: "session-name" ) s3 = Aws::S3::Client.new(credentials: role_credentials)

Para obter mais informações sobre como configurar role_arn ourole_session_name, ou sobre como configurá-las usando o AWS config arquivo compartilhado, consulte Assumir a função de provedor de credenciais no Guia de referência de ferramentas AWS SDKs e ferramentas.

Definir uma região

Você precisa definir uma região ao usar a maioria dos Serviços da AWS. O AWS SDK for Ruby pesquisa uma região na seguinte ordem:

Para obter mais informações sobre a region configuração, consulte o Guia Região da AWSde referência de ferramentas AWS SDKs e ferramentas. O restante desta seção descreve como definir uma região, começando com a abordagem mais comum.

Definir a região usando o arquivo config compartilhado

Defina a região definindo a region variável no AWS config arquivo compartilhado. Para obter mais informações sobre o config arquivo compartilhado, consulte Arquivos de configuração e credenciais compartilhados no Guia de referência de ferramentas AWS SDKs e ferramentas.

Exemplo de configuração desse valor no arquivo config:

[default] region = us-west-2

O arquivo config compartilhado não é verificado se a variável de ambiente AWS_SDK_CONFIG_OPT_OUT estiver definida.

Definir a região usando variáveis de ambiente

Defina a região definindo a variável de ambiente AWS_REGION.

Use o comando export para definir essa variável em sistemas baseados em Unix, como Linux ou macOS. O exemplo a seguir define a região como us-west-2.

export AWS_REGION=us-west-2

Para configurar essa variável no Windows, use o comando set. O exemplo a seguir define a região como us-west-2.

set AWS_REGION=us-west-2

Definir a região com o Aws.config

Defina a região adicionando um valor region ao hash Aws.config. O exemplo a seguir atualiza o hash Aws.config para usar a região us-west-1.

Aws.config.update({region: 'us-west-1'})

Todos os clientes ou recursos que você criar posteriormente estarão vinculados a essa região.

Definir a região em um objeto de cliente ou de recurso

Defina a região ao criar um AWS cliente ou recurso. O exemplo a seguir cria um objeto de recurso do Amazon S3 na região us-west-1. Escolha a região correta para seus AWS recursos. Um objeto de cliente de serviço é imutável, então você deve criar um novo cliente para cada serviço para o qual você faz solicitações e para fazer solicitações ao mesmo serviço usando uma configuração diferente.

s3 = Aws::S3::Resource.new(region: 'us-west-1')

Definir um endpoint não padrão

A região é usada para construir um endpoint SSL para AWS uso em solicitações. Se você precisar usar um endpoint não padrão na região selecionada, adicione uma entrada de endpoint ao Aws.config. Como alternativa, defina o endpoint: ao criar um cliente de serviço ou objeto de recurso. O exemplo a seguir cria um objeto de recurso do Amazon S3 no endpoint other_endpoint.

s3 = Aws::S3::Resource.new(endpoint: other_endpoint)

Para usar um endpoint de sua escolha para solicitações de API e fazer com que essa escolha persista, consulte a opção de configuração de endpoints específicos do serviço no Guia de referência de ferramentas e ferramentas.AWS SDKs