Configurar o AWS SDK para Ruby - AWS SDKpara 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.

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.

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. Para obter mais informações, consulte Precedência de configurações no Guia AWS SDKs de referência de ferramentas.

O Guia de Referência de Ferramentas AWS SDKs e Ferramentas tem informações sobre as SDK configurações 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 SDKsGuia de referência de ferramentas e ferramentas AWS SDK for Ruby APIReferência
AWS chaves de acesso (credenciais temporárias e de longo prazo) AWS teclas de acesso

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 a AWS. IAMProvedor de credenciais do 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 (AmazonECS) Provedor de credenciais de contêiner Aws::ECSCredentials
Credenciais de perfil de instância do Amazon Elastic Compute Cloud (AmazonEC2) (provedor de IMDS credenciais) IMDSprovedor de credenciais Aws::InstanceProfileCredentials

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

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 a 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 SDKsGuia de referência de ferramentas.

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 cliente do Amazon S3, onde linked::account::arn é o Amazon Resource Name (ARN) da função a ser assumida 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 SSL endpoint a ser usado para AWS 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 API solicitações 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