Clase: Mongo::Auth::Aws::CredentialsRetriever Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/auth/aws/credentials_retriever.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Recupera credenciales de AWS de diversas fuentes.

Esta clase permite la recuperación de credenciales de AWS desde:

  • el usuario proporcionado (que recibe las credenciales proporcionadas al cliente mediante opciones URI y opciones Ruby)
  • Variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN (comúnmente utilizadas por los SDK de AWS y diversas herramientas, así como AWS Lambda)
  • Llamada a la API de AssumeRoleWithWebIdentity
  • Punto final de metadatos de EC2
  • Punto final de metadatos de ECS

Las fuentes mencionadas anteriormente se consultan en el orden especificado. Se utiliza la primera fuente que contiene cualquiera de los tres componentes de credencial (ID de clave de acceso, clave de acceso secreta o token de sesión). Los componentes de credenciales deben formar un conjunto válido si se especifica alguno de ellos; es decir, se debe proporcionar siempre el ID de la clave de acceso y la clave secreta de acceso juntos, y si se proporciona un token de sesión, también se deben proporcionar el ID de la clave y la clave secreta. Si una fuente proporciona credenciales parciales, la recuperación de credenciales falla con una excepción.

Desde:

  • 2.0.0

Resumen de constantes colapsar

METADATA_TIMEOUT =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Tiempo de espera para las operaciones de metadatos, en segundos.

La especificación de autenticación sugiere un tiempo de espera de 10 segundos, pero esto parece excesivamente largo dado que el endpoint es esencialmente local.

Desde:

  • 2.0.0

5

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(usuario = nil, credentials_cache: CredentialsCache.instancia) ⇒ CredentialsRetriever

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de CredentialsRetriever.

Parámetros:

  • usuario (Auth::User | nil) (valor por defecto: nil)

    El objeto de usuario, si se proporcionó uno.

  • credentials_cache (Auth::Aws::CredentialsCache) (por defecto: CredentialsCache.instancia)

    La memoria caché de credenciales.

Desde:

  • 2.0.0



60
61
62
63
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 60

def inicializar(usuario = nulo, credentials_cache: CredentialsCache.instancia)
  @user = usuario
  @credentials_cache = credentials_cache
end

Detalles de atributo de instancias

#usuarioAuth:: Usuario | nil (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el objeto usuario, si se proporcionó uno.

Devuelve:

  • (Auth::User | nil)

    El objeto de usuario, si se proporcionó uno.

Desde:

  • 2.0.0



66
67
68
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 66

def usuario
  @user
end

Detalles del método de instancia

#credenciales(timeout_holder = nil) ⇒ Auth::Aws::Credentials

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Recupera un conjunto válido de credenciales, si es posible, o lanza Auth::InvalidConfiguration.

Parámetros:

  • timeout_holder (CsotTimeoutHolder | nil) (valor por defecto: nil)

    CSOT timeout, si hay alguno.

Devuelve:

Aumenta:

  • Auth::InvalidConfiguration si una fuente contiene un conjunto inválido de credenciales.

  • Auth::Aws::CredentialsNotFound si las credenciales no se pudieron recuperar de ninguna fuente.

  • Error::TimeoutError si no se pueden recuperar las credenciales dentro del tiempo de espera definido en el contexto de la operación.

Desde:

  • 2.0.0



81
82
83
84
85
86
87
88
89
90
91
92
# Archivo 'lib/mongo/auth/aws/credentials_retriever.rb', línea 81

def credenciales(timeout_holder = nulo)
  credenciales = credenciales_del_usuario(usuario)
  return credenciales a menos que credenciales.nil?

  credenciales = credentials_from_environment
  return credenciales a menos que credenciales.nil?

  credenciales = @credentials_cache.obtener { obtener_credenciales_de_endpoints(timeout_holder) }
  return credenciales a menos que credenciales.nil?

  propagar Autenticación::AWS::CredentialsNotFound
end