Standard caveat applies: please don't use hardcoded credentials unless absolutely necessary - it isn't secure.
在启用hardcoded-credentials
功能的情况下使用aws-credential-types
依赖项.这将允许您使用Credentials::from_keys
方法:
/使用硬编码的访问密钥、密钥和会话令牌创建Credentials
.
use aws_credential_types::Credentials;
// ...
let access_key_id = "xxx";
let secret_access_key = "yyy";
let credentials = Credentials::from_keys(access_key_id, secret_access_key, None);
以下是一个完整但最小的工作Rust CLI应用程序来演示以上内容:
// cargo.toml
[package]
name = "aws-sdk-for-rust-hardcoded-credentials-demo"
version = "0.1.0"
edition = "2021"
[dependencies]
aws-credential-types = { version = "1.1.1", features = ["hardcoded-credentials"] }
aws-types = "1.1.1"
aws-sdk-dynamodb = { version = "1.7.0", features = ["behavior-version-latest"] }
tokio = { version = "1", features = ["full"] }
// main.rs
use aws_credential_types::Credentials;
use aws_sdk_dynamodb::Config;
use aws_types::region::Region;
#[tokio::main]
async fn main() {
let access_key_id = "xxx";
let secret_access_key = "yyy";
let credentials = Credentials::from_keys(access_key_id, secret_access_key, None);
let config = Config::builder()
.credentials_provider(credentials)
.region(Region::new("eu-west-1"))
.build();
let dynamodb_client = aws_sdk_dynamodb::Client::from_conf(config);
let list_tables_response = dynamodb_client.list_tables().send().await.unwrap();
if let Some(table_names) = list_tables_response.table_names {
println!("DynamoDB tables: {:?}", table_names);
} else {
println!("No DynamoDB tables");
}
}