Loading aws/rust-runtime/aws-sig-auth/src/lib.rs +36 −2 Original line number Diff line number Diff line Loading @@ -5,11 +5,12 @@ //! AWS Signature Authentication Package //! //! This crate may be used to generate presigned URLs for unmodeled behavior such as `rds-iam-token`. //! This crate may be used to generate presigned URLs for unmodeled behavior such as `rds-iam-token` //! or to sign requests to APIGateway-based services with IAM authorization. //! //! # Examples //! //! Generate RDS IAM Token: //! ## Generate RDS IAM Token //! ```rust //! use aws_smithy_http::body::SdkBody; //! use aws_types::region::{Region, SigningRegion}; Loading Loading @@ -71,6 +72,39 @@ //! # // validate against token generated by the aws CLI //! # assert_eq!(token, "prod-instance.us-east-1.rds.amazonaws.com:3306/?Action=connect&DBUser=dbuser&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20211026%2Fus-east-1%2Frds-db%2Faws4_request&X-Amz-Date=20211026T140940Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=9632f5f4fcd2087a3c523f55f72d2fe97fad03b71a0a23b8c1edfb104e8072d1"); //! ``` //! //! ## Sign a request for APIGateway execute-api //! //! ```no_run //! use aws_sig_auth::signer::{OperationSigningConfig, RequestConfig, SigV4Signer}; //! use aws_smithy_http::body::SdkBody; //! use aws_types::credentials::ProvideCredentials; //! use aws_types::region::{Region, SigningRegion}; //! use aws_types::SigningService; //! use std::error::Error; //! use std::time::SystemTime; //! async fn sign_request( //! mut request: &mut http::Request<SdkBody>, //! region: Region, //! credentials_provider: &impl ProvideCredentials, //! ) -> Result<(), Box<dyn Error + Send + Sync>> { //! let now = SystemTime::now(); //! let signer = SigV4Signer::new(); //! let request_config = RequestConfig { //! request_ts: now, //! region: &SigningRegion::from(region), //! service: &SigningService::from_static("execute-api"), //! payload_override: None, //! }; //! signer.sign( //! &OperationSigningConfig::default_config(), //! &request_config, //! &credentials_provider.provide_credentials().await?, //! &mut request, //! )?; //! Ok((())) //! } //! ``` #[cfg(feature = "sign-eventstream")] pub mod event_stream; Loading Loading
aws/rust-runtime/aws-sig-auth/src/lib.rs +36 −2 Original line number Diff line number Diff line Loading @@ -5,11 +5,12 @@ //! AWS Signature Authentication Package //! //! This crate may be used to generate presigned URLs for unmodeled behavior such as `rds-iam-token`. //! This crate may be used to generate presigned URLs for unmodeled behavior such as `rds-iam-token` //! or to sign requests to APIGateway-based services with IAM authorization. //! //! # Examples //! //! Generate RDS IAM Token: //! ## Generate RDS IAM Token //! ```rust //! use aws_smithy_http::body::SdkBody; //! use aws_types::region::{Region, SigningRegion}; Loading Loading @@ -71,6 +72,39 @@ //! # // validate against token generated by the aws CLI //! # assert_eq!(token, "prod-instance.us-east-1.rds.amazonaws.com:3306/?Action=connect&DBUser=dbuser&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20211026%2Fus-east-1%2Frds-db%2Faws4_request&X-Amz-Date=20211026T140940Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=9632f5f4fcd2087a3c523f55f72d2fe97fad03b71a0a23b8c1edfb104e8072d1"); //! ``` //! //! ## Sign a request for APIGateway execute-api //! //! ```no_run //! use aws_sig_auth::signer::{OperationSigningConfig, RequestConfig, SigV4Signer}; //! use aws_smithy_http::body::SdkBody; //! use aws_types::credentials::ProvideCredentials; //! use aws_types::region::{Region, SigningRegion}; //! use aws_types::SigningService; //! use std::error::Error; //! use std::time::SystemTime; //! async fn sign_request( //! mut request: &mut http::Request<SdkBody>, //! region: Region, //! credentials_provider: &impl ProvideCredentials, //! ) -> Result<(), Box<dyn Error + Send + Sync>> { //! let now = SystemTime::now(); //! let signer = SigV4Signer::new(); //! let request_config = RequestConfig { //! request_ts: now, //! region: &SigningRegion::from(region), //! service: &SigningService::from_static("execute-api"), //! payload_override: None, //! }; //! signer.sign( //! &OperationSigningConfig::default_config(), //! &request_config, //! &credentials_provider.provide_credentials().await?, //! &mut request, //! )?; //! Ok((())) //! } //! ``` #[cfg(feature = "sign-eventstream")] pub mod event_stream; Loading