Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar el AWS SDK para Ruby
Aprenda a configurar el AWS SDK para Ruby. Debe establecer cómo se autentica el código con AWS cuando desarrolla con Servicios de AWS. También debes configurar el Región de AWS que deseas usar.
SDK para Ruby incluye clases de cliente que proporcionan interfaces para los Servicios de AWS. Cada clase de cliente admite una clase particular Servicio de AWS y sigue la convenciónAws::
. Por ejemplo, <service identifier>
::ClientAws::S3::Client
proporciona una interfaz para el servicio Amazon Simple Storage Service y Aws::SQS::Client
proporciona una interfaz para el servicio Amazon Simple Queue Service.
Todas las clases de clientes Servicios de AWS son seguras para subprocesos.
Al crear una instancia de una clase de cliente, se deben proporcionar AWS las credenciales. Las credenciales se pueden proporcionar desde el código, el entorno o el AWS config
archivo y el archivo compartidos AWS credentials
. Para ver el orden en el que el SDK comprueba los proveedores de autenticación, consulteCadena de proveedores de credenciales.
Los credentials
archivos config
y compartidos se pueden usar para los ajustes de configuración. Para ver todos los ajustes del AWS SDK, consulta la referencia sobre los ajustes en la Guía de referencia de herramientas AWS SDKs y herramientas. Se pueden usar diferentes perfiles para almacenar diferentes configuraciones. La variable de AWS_PROFILE
entorno se puede usar para especificar qué perfil carga el SDK. El perfil activo también se puede configurar mediante la profile
opción deAws.config
.
Prioridad de los ajustes
La configuración global configura las funciones, los proveedores de credenciales y otras funciones que son compatibles con la mayoría SDKs y que tienen un amplio impacto en todos Servicios de AWS los países. Todos AWS SDKs tienen una serie de lugares (o fuentes) que comprueban para encontrar un valor para la configuración global. No todos los ajustes están disponibles en todas las fuentes. La siguiente es la configuración de la prioridad de búsqueda:
-
Cualquier ajuste explícito establecido en el código o en el propio cliente de un servicio tiene prioridad sobre cualquier otra cosa.
-
Todos los parámetros que se pasen directamente al constructor de un cliente tienen la máxima prioridad.
-
Aws.config
se comprueba si hay configuraciones globales o específicas del servicio.
-
-
Se comprueba la variable de entorno .
-
El AWS
credentials
archivo compartido está marcado. -
El AWS
config
archivo compartido está marcado. -
Los valores predeterminados proporcionados por el propio código fuente del AWS SDK for Ruby se utilizan en último lugar.
Aws.config
Para proporcionar una configuración global en tu código para todas AWS las clases, usa la Aws.config
aws-sdk-core
gema.
Aws.config
admite dos sintaxis para usos diferentes. La configuración global se puede aplicar a todos los servicios Servicios de AWS o a uno específico. Para ver la lista completa de configuraciones compatibles, consulta Client
Options
la referencia de la AWS SDK for Ruby API.
Configuración global mediante Aws.config
Para establecer una configuración independiente del servicioAws.config
, utilice la siguiente sintaxis:
Aws.config[:
<global setting name>
] =<value>
Estos ajustes se combinan en todos los clientes de servicio creados.
Ejemplo de configuración global:
Aws.config[:
region
] ='us-west-2'
Si intentas usar un nombre de configuración que no es compatible a nivel mundial, se generará un error al intentar crear una instancia de un tipo de servicio que no lo admite. Si esto ocurre, usa en su lugar una sintaxis específica del servicio.
Configuración específica del servicio mediante Aws.config
Para establecer la configuración específica del servicioAws.config
, utilice la siguiente sintaxis:
Aws.config[:
<service identifier>
] = {<global setting name>
:<value>
}
Estos ajustes se combinan en todos los clientes de servicio creados de ese tipo de servicio.
Ejemplo de una configuración que solo se aplica a Amazon S3:
Aws.config[:
s3
] = {force_path_style
:true
}
Se pueden identificar consultando el nombre del nombre de la gema AWS SDK for Ruby<service identifier>
aws-sdk-
». Por ejemplo:
-
Para
aws-sdk-s3
, la cadena de identificación del servicio es "s3
». -
Para
aws-sdk-ecs
, la cadena de identificación del servicio es "ecs
».
Cadena de proveedores de credenciales
Todos SDKs tienen una serie de lugares (o fuentes) que comprueban para obtener credenciales válidas que puedan utilizarlas para realizar una solicitud a un Servicio de AWS. Una vez que se encuentran las credenciales válidas, se detiene la búsqueda. Esta búsqueda sistemática se denomina cadena predeterminada de proveedores de credenciales.
nota
Si siguió el enfoque recomendado para los nuevos usuarios para empezar, configuró la autenticación AWS IAM Identity Center en Autenticación de SDK con AWS del tema Introducción. Otros métodos de autenticación son útiles en diferentes situaciones. Para evitar riesgos de seguridad, recomendamos utilizar siempre credenciales a corto plazo. Para conocer otros procedimientos de métodos de autenticación, consulte Autenticación y acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.
Para cada paso de la cadena, hay diferentes maneras de establecer los valores. La configuración de los valores directamente en el código siempre tiene prioridad, seguida de la configuración como variables de entorno y, por último, en el AWS config
archivo compartido.
La guía de referencia de AWS SDKs and Tools contiene información sobre los ajustes de configuración del SDK que utilizan todos AWS SDKs y los AWS CLI. Para obtener más información sobre cómo configurar el SDK a través del AWS config
archivo compartido, consulte Archivos de credenciales y configuración compartidos. Para obtener más información sobre cómo configurar el SDK mediante la configuración de variables de entorno, consulte Compatibilidad con variables de entorno.
Para autenticarse AWS, el AWS SDK para Ruby comprueba los proveedores de credenciales en el orden que se indica en la siguiente tabla.
Proveedor de credenciales por prioridad | AWS SDKs y guía de referencia de herramientas | AWS SDK for Ruby Referencia de la API |
---|---|---|
AWS claves de acceso (credenciales temporales y de larga duración) | Claves de acceso de AWS | |
token de identidad web de AWS Security Token Service (AWS STS) | Asumir el rol de proveedor de credenciales Uso de |
Aws::AssumeRoleWebIdentityCredentials
|
AWS IAM Identity Center. En esta guía, consulte Autenticación de SDK con AWS. | Proveedor de credenciales del IAM Identity Center | Aws::SSOCredentials |
Proveedor de entidades de confianza (como AWS_ROLE_ARN ). En esta guía, consulte Crear un token de AWS STS acceso. |
Asumir el rol de proveedor de credenciales Uso de |
Aws::AssumeRoleCredentials |
Proveedor de credenciales de proceso | Proveedor de credenciales de proceso | Aws::ProcessCredentials |
Credenciales de Amazon Elastic Container Service (Amazon ECS) | Proveedor de credenciales de contenedor | Aws::ECSCredentials |
Credenciales de perfil de instancia de Amazon Elastic Compute Cloud (Amazon EC2) (proveedor de credenciales IMDS) | Proveedor de credenciales IMDS | Aws::InstanceProfileCredentials |
Si AWS_SDK_CONFIG_OPT_OUT
se establece la variable de entorno AWS SDK for Ruby, el AWS config
archivo compartido, normalmente at ~/.aws/config
, no se analizará en busca de credenciales.
Crear un token de AWS STS acceso
Asumir un rol implica usar un conjunto de credenciales de seguridad temporales que puede usar para acceder a AWS recursos a los que normalmente no tendría acceso. Las credenciales temporales incluyen un ID de clave de acceso, una clave de acceso secreta y un token de seguridad. Puede usar el método Aws::AssumeRoleCredentials
para crear un token de acceso AWS Security Token Service
(AWS STS).
En el siguiente ejemplo se utiliza un token de acceso para crear un objeto de cliente de Amazon S3, donde linked::account::arn
es el nombre de recurso de Amazon (ARN) del rol que se va a asumir, y session-name
es un identificador de la sesión del rol asumido.
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 obtener más información sobre cómo role_arn
configurarlos o role_session_name
sobre cómo configurarlos utilizando el AWS config
archivo compartido, consulte Asumir el rol de proveedor de credenciales en la Guía de referencia de herramientas AWS SDKs y herramientas.
Configuración de una región
Debe configurar una región cuando se utiliza la mayoría de los Servicios de AWS. El AWS SDK for Ruby busca una región en el siguiente orden:
Para obtener más información sobre la region
configuración, consulta Región de AWSla Guía de referencia de herramientas AWS SDKs y herramientas. En el resto de esta sección se describe cómo configurar una región, comenzando por el enfoque más común.
Configuración de la región mediante el archivo compartido config
Defina la región configurando la region
variable en el AWS config
archivo compartido. Para obtener más información sobre el config
archivo compartido, consulte los archivos de configuración y credenciales compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.
Ejemplo de configuración de este valor en el archivo config
:
[default] region = us-west-2
El archivo compartido config
no se comprueba si la variable de entorno AWS_SDK_CONFIG_OPT_OUT
está configurada.
Configuración de la región mediante variables de entorno
Configure la región mediante estableciendo la variable de entorno AWS_REGION
.
Use el comando export
para establecer esta variable en sistemas basados en Unix, como Linux o macOS. En el siguiente ejemplo se establece la región en us-west-2
.
export AWS_REGION=us-west-2
Para establecer esta variable en Windows, utilice el comando set
. En el siguiente ejemplo se establece la región en us-west-2
.
set AWS_REGION=us-west-2
Configuración de la región con Aws.config
Configure la región añadiendo un valor region
en el hash Aws.config
. En el siguiente ejemplo se actualiza el hash Aws.config
para utilizar la región us-west-1
.
Aws.config.update({region: 'us-west-1'})
Todos los clientes o recursos que cree posteriormente estarán asociados a esta región.
Configuración de la región en un objeto de recurso
Establezca la región al crear un AWS cliente o un recurso. En el siguiente ejemplo se crea un objeto de recurso de Amazon S3; en la región us-west-1
. Elija la región correcta para sus AWS recursos. Un objeto de cliente de servicio es inmutable, por lo que debe crear un cliente nuevo para cada servicio al que realice solicitudes y para realizar solicitudes al mismo servicio con una configuración diferente.
s3 = Aws::S3::Resource.new(region: 'us-west-1')
Configuración de un punto de conexión no estándar
La región se utiliza para crear un punto final SSL que se utilizará en AWS las solicitudes. Si necesita utilizar un punto de conexión no estándar en la región que ha seleccionado, añada una entrada de endpoint
para Aws.config
. Como alternativa, configure el endpoint:
al crear un cliente de servicio o un objeto de recurso. En el siguiente ejemplo se crea un objeto de recurso de Amazon S3 en el punto de conexión other_endpoint
.
s3 = Aws::S3::Resource.new(endpoint: other_endpoint)
Para usar el punto final que elijas para las solicitudes de API y mantener esa opción, consulta la opción de configuración de puntos finales específicos del servicio en la Guía de referencia de herramientas AWS SDKs y herramientas.