Struct aws_config::sts::AssumeRoleProvider

source ·
pub struct AssumeRoleProvider { /* private fields */ }
Expand description

Credentials provider that uses credentials provided by another provider to assume a role through the AWS Security Token Service (STS).

When asked to provide credentials, this provider will first invoke the inner credentials provider to get AWS credentials for STS. Then, it will call STS to get assumed credentials for the desired role.

§Examples

Create an AssumeRoleProvider explicitly set to us-east-2 that utilizes the default credentials chain.

use aws_config::sts::AssumeRoleProvider;
use aws_types::region::Region;
let provider = AssumeRoleProvider::builder("arn:aws:iam::123456789012:role/demo")
  .region(Region::from_static("us-east-2"))
  .session_name("testAR")
  .build().await;
}

Create an AssumeRoleProvider from an explicitly configured base configuration.

use aws_config::sts::AssumeRoleProvider;
use aws_types::region::Region;
let conf = aws_config::from_env().use_fips(true).load().await;
let provider = AssumeRoleProvider::builder("arn:aws:iam::123456789012:role/demo")
  .configure(&conf)
  .session_name("testAR")
  .build().await;
}

Create an AssumeroleProvider that sources credentials from a provider credential provider:

use aws_config::sts::AssumeRoleProvider;
use aws_types::region::Region;
use aws_config::environment::EnvironmentVariableCredentialsProvider;
let provider = AssumeRoleProvider::builder("arn:aws:iam::123456789012:role/demo")
  .session_name("test-assume-role-session")
  // only consider environment variables, explicitly.
  .build_from_provider(EnvironmentVariableCredentialsProvider::new()).await;
}

Implementations§

source§

impl AssumeRoleProvider

source

pub fn builder(role: impl Into<String>) -> AssumeRoleProviderBuilder

Build a new role-assuming provider for the given role.

The role argument should take the form an Amazon Resource Name (ARN) like

arn:aws:iam::123456789012:role/example

Trait Implementations§

source§

impl Debug for AssumeRoleProvider

source§

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

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

impl ProvideCredentials for AssumeRoleProvider

source§

fn provide_credentials<'a>(&'a self) -> ProvideCredentials<'_>
where Self: 'a,

Returns a future that provides credentials.
source§

fn fallback_on_interrupt(&self) -> Option<Credentials>

Returns fallback credentials. Read more

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more