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::
. Por exemplo, <service identifier>
::ClientAws::S3::Client
fornece uma interface para o serviço Amazon Simple Storage Service e Aws::SQS::Client
fornece 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:
-
Qualquer configuração explícita definida no código ou no próprio cliente de serviço tem precedência sobre qualquer outra coisa.
-
Todos os parâmetros passados diretamente para um construtor de cliente têm a maior precedência.
-
Aws.config
é verificado quanto às configurações globais ou específicas do serviço.
-
-
A variável de ambiente está marcada.
-
O AWS
credentials
arquivo compartilhado é verificado. -
O AWS
config
arquivo compartilhado é verificado. -
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.config
aws-sdk-core
gem.
Aws.config
suporta 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
Options
a 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
podem ser identificados examinando o nome da gem correspondente do AWS SDK for Ruby<service identifier>
aws-sdk-
Por exemplo:
-
Para
aws-sdk-s3
, a string do identificador do serviço é "s3
”. -
Para
aws-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 | |
Token de identidade da Web de AWS Security Token Service (AWS STS) | Assuma a função de provedor de credenciais Usando |
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 |
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