Credentials

Struct Credentials 

Source
pub struct Credentials {
    pub access_key: Option<String>,
    pub secret_key: Option<String>,
    pub security_token: Option<String>,
    pub session_token: Option<String>,
    pub expiration: Option<Rfc3339OffsetDateTime>,
}
Expand description

AWS access credentials: access key, secret key, and optional token.

§Example

Loads from the standard AWS credentials file with the given profile name, defaults to “default”.

use awscreds::Credentials;

// Load credentials from `[default]` profile
let credentials = Credentials::default();

// Also loads credentials from `[default]` profile
let credentials = Credentials::new(None, None, None, None, None);

// Load credentials from `[my-profile]` profile
let credentials = Credentials::new(None, None, None, None, Some("my-profile".into()));

// Use anonymous credentials for public objects
let credentials = Credentials::anonymous();

Credentials may also be initialized directly or by the following environment variables:

  • AWS_ACCESS_KEY_ID,
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN

The order of preference is arguments, then environment, and finally AWS credentials file.

use awscreds::Credentials;

// Load credentials directly
let access_key = "AKIAIOSFODNN7EXAMPLE";
let secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
let credentials = Credentials::new(Some(access_key), Some(secret_key), None, None, None);

// Load credentials from the environment
use std::env;
env::set_var("AWS_ACCESS_KEY_ID", "AKIAIOSFODNN7EXAMPLE");
env::set_var("AWS_SECRET_ACCESS_KEY", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY");
let credentials = Credentials::new(None, None, None, None, None);

Fields§

§access_key: Option<String>

AWS public access key.

§secret_key: Option<String>

AWS secret key.

§security_token: Option<String>

Temporary token issued by AWS service.

§session_token: Option<String>§expiration: Option<Rfc3339OffsetDateTime>

Implementations§

Source§

impl Credentials

Source

pub fn refresh(&mut self) -> Result<(), CredentialsError>

Source

pub fn from_sts_env(session_name: &str) -> Result<Credentials, CredentialsError>

Source

pub fn from_sts( role_arn: &str, session_name: &str, web_identity_token: &str, ) -> Result<Credentials, CredentialsError>

Source

pub fn default() -> Result<Credentials, CredentialsError>

Source

pub fn anonymous() -> Result<Credentials, CredentialsError>

Source

pub fn new( access_key: Option<&str>, secret_key: Option<&str>, security_token: Option<&str>, session_token: Option<&str>, profile: Option<&str>, ) -> Result<Credentials, CredentialsError>

Initialize Credentials directly with key ID, secret key, and optional token.

Source

pub fn from_env_specific( access_key_var: Option<&str>, secret_key_var: Option<&str>, security_token_var: Option<&str>, session_token_var: Option<&str>, ) -> Result<Credentials, CredentialsError>

Source

pub fn from_env() -> Result<Credentials, CredentialsError>

Source

pub fn from_container_credentials_provider() -> Result<Credentials, CredentialsError>

Source

pub fn from_instance_metadata( not_ec2: bool, ) -> Result<Credentials, CredentialsError>

Source

pub fn from_instance_metadata_v2( not_ec2: bool, ) -> Result<Credentials, CredentialsError>

Source

pub fn from_credentials_file<P: AsRef<Path>>( file: P, section: Option<&str>, ) -> Result<Credentials, CredentialsError>

Load credentials from a specific credentials file.

This method allows loading AWS credentials from a custom file location, which is useful when credentials are stored in a non-standard location.

§Arguments
  • file - Path to the credentials file
  • section - Optional profile name to load (defaults to “default”)
§Example
use awscreds::Credentials;

let credentials = Credentials::from_credentials_file(
    "/custom/path/credentials",
    Some("production")
).unwrap();
Source

pub fn from_profile( section: Option<&str>, ) -> Result<Credentials, CredentialsError>

Trait Implementations§

Source§

impl Clone for Credentials

Source§

fn clone(&self) -> Credentials

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Credentials

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Credentials

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Credentials

Source§

fn eq(&self, other: &Credentials) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Credentials

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for Credentials

Source§

impl StructuralPartialEq for Credentials

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,