Uso AWS del SDK para los proveedores de credenciales de Rust - AWS SDK para Rust

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.

Uso AWS del SDK para los proveedores de credenciales de Rust

Todas las solicitudes AWS deben estar firmadas criptográficamente con las credenciales emitidas porAWS. El SDK recupera en tiempo de ejecución los valores de configuración de las credenciales comprobando distintas ubicaciones.

Si la configuración recuperada incluye configuración de acceso de inicio de sesión único de AWS IAM Identity Center, el SDK trabaja con IAM Identity Center para recuperar las credenciales temporales que usa para realizar solicitudes a los Servicios de AWS.

Si la configuración recuperada incluye credenciales temporales, el SDK las usa para realizar Servicio de AWS llamadas. Las credenciales temporales están formadas por claves de acceso y un token de sesión.

La autenticación con se AWS puede gestionar fuera de tu base de código. El SDK puede detectar, utilizar y actualizar automáticamente muchos métodos de autenticación mediante la cadena de proveedores de credenciales.

Para ver las opciones guiadas para empezar a AWS autenticar tu proyecto, consulta Autenticación y acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.

Cadena de proveedores de credenciales

Si no especifica de manera explícita un proveedor de credenciales al crear un cliente, el SDK para Ruby usa una cadena de proveedores de credenciales que comprueba una serie de lugares donde puede proporcionar credenciales. Cuando el SDK encuentra credenciales en una de esas ubicaciones, la búsqueda se detiene. Para obtener más información sobre la creación de clientes, consulte Configuración de clientes de servicio de AWS SDK para Rust en código.

El siguiente ejemplo no especifica un proveedor de credenciales en el código. El SDK usa la cadena de proveedores de credenciales para detectar la autenticación que se ha configurado en el entorno de alojamiento y usa esa autenticación para las llamadas a los Servicios de AWS.

let config = aws_config::defaults(BehaviorVersion::latest()).load().await; let s3 = aws_sdk_s3::Client::new(&config);

Orden de recuperación de credenciales

La cadena de proveedores de credenciales busca las credenciales mediante la siguiente secuencia predefinida:

  1. Variables de entorno de clave de acceso

    El SDK intenta cargar credenciales de las variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN.

  2. Los credentials archivos AWS config y compartidos

    El SDK intenta cargar las credenciales del [default] perfil en los credentials archivos AWS config and compartidos. Puede usar la variable de entorno AWS_PROFILE para elegir un perfil con nombre que desee que cargue el SDK en lugar de usar [default]. Los credentials archivos config y los comparten varias AWS SDKs herramientas. Para obtener más información sobre estos archivos, consulte los credentialsarchivos config y compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas. Para obtener más información sobre los proveedores estandarizados que puede especificar en un perfil, consulte los proveedores de credenciales estandarizados AWS SDKs y Herramientas.

  3. AWS STSidentidad web

    Al crear aplicaciones móviles o aplicaciones web basadas en clientes que requieren acceso aAWS, AWS Security Token Service (AWS STS) devuelve un conjunto de credenciales de seguridad temporales para los usuarios federados que se autentican a través de un proveedor de identidad público (IdP).

    • Cuando lo especificas en un perfil, el SDK o la herramienta intentarán recuperar las credenciales temporales mediante el método de la API. AWS STS AssumeRoleWithWebIdentity Para obtener más información sobre este método, consulta AssumeRoleWithWebIdentityla referencia de la AWS Security Token Service API.

    • Para obtener instrucciones sobre la configuración de este proveedor, consulte Federate with web identity u OpenID Connect AWSSDKs en la Guía de referencia de and Tools.

    • Para obtener más información sobre las propiedades de configuración del SDK de este proveedor, consulte Asumir el rol de proveedor de credenciales en la Guía de referencia de herramientas AWS SDKs y herramientas.

  4. Credenciales de contenedores de Amazon ECS y Amazon EKS

    Sus tareas de Amazon Elastic Container Service y sus cuentas de servicio de Kubernetes pueden tener un rol de IAM asociado a ellas. Los contenedores que se ejecutan en la tarea o los contenedores del pod asumen los permisos concedidos en el rol de IAM. Este rol permite que su código de la aplicación de SDK para Rust (en el contenedor) utilice otros Servicios de AWS.

    El SDK intenta recuperar las credenciales de las variables de entorno AWS_CONTAINER_CREDENTIALS_RELATIVE_URI o AWS_CONTAINER_CREDENTIALS_FULL_URI, que Amazon ECS y Amazon EKS pueden configurar automáticamente.

  5. Servicio de metadatos de EC2 instancias de Amazon

    Cree un rol de IAM y asócielo a la instancia. La aplicación SDK para Rust de la instancia intenta recuperar las credenciales que proporciona el rol a partir de los metadatos de la instancia.

  6. Si las credenciales siguen sin resolverse en este momento, se produce un error en la operación panics.

Para obtener más información sobre los ajustes de configuración del proveedor de AWS credenciales, consulte los proveedores de credenciales estandarizados en la referencia sobre la configuración AWSSDKs y en la Guía de referencia de herramientas.

Proveedor de credenciales explícito

En lugar de confiar en la cadena de proveedores de credenciales para detectar el método de autenticación, puede especificar un proveedor de credenciales específico que debe utilizar el SDK. Al cargar la configuración general mediante aws_config::defaults, puede especificar un proveedor de credenciales personalizado, como se muestra a continuación:

let config = aws_config::defaults(BehaviorVersion::latest()) .credentials_provider(MyCredentialsProvider::new()) .load() .await;

Puede implementar su propio proveedor de credenciales implementando el indicador ProvideCredentials.

Almacenamiento en caché de la identidad

El SDK almacenará en caché las credenciales y otros tipos de identidad, como los tokens de SSO. De forma predeterminada, el SDK usa una implementación de caché diferida que carga las credenciales cuando se solicitan por primera vez, las almacena en la memoria caché y, a continuación, intenta actualizarlas durante otra solicitud cuando están a punto de caducar. Los clientes creados a partir de la misma SdkConfig compartirán una IdentityCache.