You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS SDK for Rust中使用硬编码的Access Key ID和Secret Key?

在Rust中显式配置AWS访问密钥的实现方法

在Rust的AWS SDK(aws-sdk-rust)中,你可以通过直接构造凭证对象并注入配置的方式,实现和Boto3中显式提供访问密钥相同的效果,无需依赖环境变量或~/.aws/credentials文件。

方法一:基于SDK配置构建(推荐,兼容更多SDK特性)

use aws_config::meta::region::RegionProviderChain;
use aws_credential_types::Credentials;
use aws_sdk_dynamodb::Client;

#[tokio::main]
async fn main() {
    // 显式创建凭证对象
    let credentials = Credentials::new(
        "你的AWS_ACCESS_KEY_ID",
        "你的AWS_SECRET_ACCESS_KEY",
        None, // 临时凭证时需传入会话令牌,否则留空
        None, // 凭证过期时间,非临时凭证可留空
        "custom-explicit", // 标识凭证来源,自定义即可
    );

    // 指定目标区域
    let region = RegionProviderChain::first_try("us-east-1")
        .region()
        .await
        .unwrap();

    // 构建包含显式凭证的SDK配置
    let shared_config = aws_config::from_env()
        .credentials_provider(credentials)
        .region(region)
        .load()
        .await;

    // 创建DynamoDB客户端
    let client = Client::new(&shared_config);

    // 后续可使用client执行DynamoDB操作
}

方法二:直接构造客户端配置(更轻量化)

如果不需要加载其他环境配置,可以直接构建客户端的专属配置:

use aws_sdk_dynamodb::{Client, Config, Credentials, Region};

#[tokio::main]
async fn main() {
    let credentials = Credentials::new(
        "你的AWS_ACCESS_KEY_ID",
        "你的AWS_SECRET_ACCESS_KEY",
        None,
        None,
        "custom-explicit",
    );

    // 直接构建DynamoDB客户端配置
    let config = Config::builder()
        .region(Region::new("us-east-1"))
        .credentials_provider(credentials)
        .build();

    let client = Client::from_conf(config);
}

注意事项

  • 生产环境禁止硬编码密钥:上述方式仅适合测试或本地调试场景,生产环境建议使用IAM角色、环境变量或AWS凭证文件等安全的凭证管理方式。
  • 临时凭证支持:如果使用AWS STS临时凭证,需要在Credentials::new的第三个参数传入会话令牌,第四个参数传入凭证过期时间。

内容的提问来源于stack exchange,提问作者alagris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:56:10