Uso AWS del SDK para proveedores de credenciales de C++ - AWS SDK para C++

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 proveedores de credenciales de C++

Todas las solicitudes AWS deben estar firmadas criptográficamente con las credenciales emitidas por AWS. En tiempo de ejecución, el SDK recupera los valores de configuración para las credenciales comprobando varias ubicaciones.

La autenticación con se AWS puede gestionar fuera de su 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.

La cadena de proveedores de credenciales

Si no especifica de manera explícita un proveedor de credenciales al crear un cliente, el SDK para C++ usa una cadena de proveedores de credenciales que comprueba una serie de lugares donde usted puede proporcionar credenciales. Cuando el SDK encuentra credenciales en una de esas ubicaciones, la búsqueda se detiene.

Orden de recuperación de credenciales

Todos SDKs tienen una serie de sitios (o fuentes) que consultan para obtener credenciales válidas y 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 de proveedores de credenciales.

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. Para obtener más información, consulte Prioridad de los ajustes en la Guía de referencia de herramientas AWS SDKs y herramientas.

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 AWS SDKs las herramientas. 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 SDK para C++ comprueba los proveedores de credenciales en el siguiente orden.

  1. AWS claves de acceso (credenciales temporales y de larga duración)

    El SDK intenta cargar las credenciales desde las variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY y de AWS_SESSION_TOKEN entorno, o desde el AWS credentials archivo compartido.

    • Para obtener instrucciones sobre la configuración de este proveedor, consulta las claves de AWS acceso en la Guía de referencia de herramientas AWS SDKs y herramientas.

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

  2. AWS STS identidad web

    Al crear aplicaciones móviles o aplicaciones web basadas en clientes que requieren acceso a AWS, 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 orientación sobre la configuración de este proveedor, consulte Federate with web identity u OpenID Connect AWS SDKs 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.

  3. Centro de identidades de IAM

    Si utiliza el Centro de identidad de IAM para autenticarse, el SDK para C++ utiliza el token de inicio de sesión único que se configuró mediante la ejecución del comando CLI. AWS aws sso login El SDK usa las credenciales temporales que IAM Identity Center ha intercambiado por un token válido. A continuación, el SDK utiliza las credenciales temporales cuando llama a los Servicios de AWS. Para obtener información detallada sobre este proceso, consulte Comprender la resolución de credenciales del SDK Servicios de AWS en la Guía de referencia de herramientas y herramientas.AWS SDKs

  4. Inicie sesión en el solucionador de identidades de credenciales con Signin AWS

    Si utiliza las credenciales de inicio de sesión y de consola de AWS para autenticarse, el SDK para C++ utiliza las credenciales de consola configuradas en ejecución aws login o aws login --profile en la CLI. El SDK usa estas credenciales cuando llama a AWS los servicios.

  5. Proveedor de procesos externo

    Este proveedor se puede utilizar para proporcionar implementaciones personalizadas, como recuperar credenciales de un almacén de credenciales en las instalaciones o integrarlas con su proveedor de identificación en las instalaciones.

    • Para obtener información sobre una forma de configurar este proveedor, consulte IAM Roles Anywhere en la guía de referencia AWS SDKs y herramientas.

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

  6. 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 for C++ (en el contenedor) utilice otros servicios de 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.

  7. Servicio de metadatos de EC2 instancias de Amazon

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

La cadena de proveedores de credenciales se puede consultar AWSCredentialsProviderChainen el AWS SDK para C++ código fuente de. GitHub

Si ha seguido el enfoque recomendado para los nuevos usuarios para empezar, configure la autenticación con credenciales de inicio Autenticación AWS mediante AWS SDK para C++ de AWS sesión en el tema Primeros pasos. 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.

Proveedor de credenciales explícito

En lugar de confiar en la cadena de proveedores de credenciales para detectar su método de autenticación, puede especificar un proveedor de credenciales específico para que lo utilice el SDK. Para ello, debe proporcionar las credenciales en el constructor del cliente de servicio.

El siguiente ejemplo crea un cliente de Amazon Simple Storage Service proporcionando directamente las credenciales de acceso temporal en lugar de utilizar la cadena.

SDKOptions options; Aws::InitAPI(options); { const auto cred_provider = Aws::MakeShared<Auth::SimpleAWSCredentialsProvider>("TestAllocationTag", "awsAccessKeyId", "awsSecretKey", "sessionToken"); S3Client client{cred_provider}; } Aws::ShutdownAPI(options);

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 Aws::Client::ClientConfiguration comparten una memoria caché.