Unverified Commit 8e115e1d authored by Jon Gjengset's avatar Jon Gjengset Committed by GitHub
Browse files

Add credential provider for assuming roles via STS (#703)

parent 273a2698
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ vNext (Month Day, Year)
- Add `TimeSource` to `aws_types::os_shim_internal` (#701)
- User agent construction is now `const fn` (#701)
- Update event stream `Receiver`s to be `Send` (#702, #aws-sdk-rust#224)
- Add `sts::AssumeRoleProvider` to `aws-config` (#703, aws-sdk-rust#3)

v0.23 (September 14th, 2021)
=======================
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ vNext (Month Day, Year)
**New This Week**
- Add IMDS client to `aws-config`
- Update event stream `Receiver`s to be `Send` (aws-sdk-rust#224)
- Add `sts::AssumeRoleProvider` to `aws-config` (#703, aws-sdk-rust#3)

v0.0.18-alpha (September 14th, 2021)
=======================
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ use aws_types::{credentials, Credentials};
/// - `AWS_ACCESS_KEY_ID`
/// - `AWS_SECRET_ACCESS_KEY` with fallback to `SECRET_ACCESS_KEY`
/// - `AWS_SESSION_TOKEN`
#[derive(Debug)]
#[derive(Debug, Clone)]
pub struct EnvironmentVariableCredentialsProvider {
    env: Env,
}
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ pub mod meta;
pub mod profile;

#[cfg(feature = "sts")]
mod sts;
pub mod sts;

#[cfg(test)]
mod test_case;
+8 −3
Original line number Diff line number Diff line
@@ -3,14 +3,19 @@
 * SPDX-License-Identifier: Apache-2.0.
 */

pub mod util {
//! Credential provider augmentation through the AWS Security Token Service (STS).

mod assume_role;
pub use assume_role::{AssumeRoleProvider, AssumeRoleProviderBuilder};

pub(crate) mod util {
    use aws_sdk_sts::model::Credentials as StsCredentials;
    use aws_types::credentials::{self, CredentialsError};
    use aws_types::Credentials as AwsCredentials;
    use std::time::{SystemTime, UNIX_EPOCH};

    /// Convert STS credentials to aws_auth::Credentials
    pub fn into_credentials(
    pub(crate) fn into_credentials(
        sts_credentials: Option<StsCredentials>,
        provider_name: &'static str,
    ) -> credentials::Result {
@@ -42,7 +47,7 @@ pub mod util {
    /// STS Assume Role providers MUST assign a name to their generated session. When a user does not
    /// provide a name for the session, the provider will choose a name composed of a base + a timestamp,
    /// eg. `profile-file-provider-123456789`
    pub fn default_session_name(base: &str) -> String {
    pub(crate) fn default_session_name(base: &str) -> String {
        let now = SystemTime::now()
            .duration_since(UNIX_EPOCH)
            .expect("post epoch");
Loading