aws凭证

AWS 凭证用于验证身份,并授权对 DynamoDB 等等 AWS 服务的访问。这些凭证通常由两部分组成:

  • Access Key ID:AWS 访问密钥 ID
  • Secret Access Key:AWS 密钥访问密钥

有以下几种方法可以集成aws凭证

一、环境变量

适用于本地开发和临时凭证。通过设置环境变量来传递 AWS 凭证。设置这些环境变量后,AWS SDK 会自动读取并使用它们来执行请求。常用的环境变量:

复制代码
AWS_ACCESS_KEY_ID:你的 AWS 访问密钥 ID
AWS_SECRET_ACCESS_KEY:你的 AWS 密钥访问密钥
AWS_SESSION_TOKEN:如果使用临时凭证,需要设置此环境变量。

(1)windows cmd命令设置

复制代码
set AWS_ACCESS_KEY_ID=your_access_key_id
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
set AWS_SESSION_TOKEN=your_session_token  # 如果使用临时凭证

(2)linux命令设置

复制代码
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_SESSION_TOKEN=your_session_token  # 只有使用临时凭证时才需要设置此项

二、配置文件~/.aws/credentials

适用于长期和多账户配置。

AWS SDK 也会自动读取配置文件中的凭证。你可以将凭证保存在 ~/.aws/credentials 文件中,或者在 Windows 上的 %UserProfile%\.aws\credentials 路径下。

复制代码
[default]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
aws_session_token = your_session_token  # 如果使用临时凭证时需要配置此项

[profile_name]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
aws_session_token = your_session_token  # 如果使用临时凭证时需要配置此项

三、IAM 角色

适用于 AWS 上的 EC2 实例、Lambda 或 ECS 服务。

如果你的应用程序运行在 AWS EC2 实例上,或者在 ECS (容器服务)或 Lambda 等服务上运行,你可以使用 IAM 角色 来自动提供凭证。你无需手动设置 Access KeySecret Key,IAM 角色会自动将临时凭证提供给你的应用。

  • 在 EC2 实例或容器中运行时,SDK 会自动获取该实例或容器的 IAM 角色权限。

IAM 角色 可以为你的 EC2 实例、Lambda 函数或 ECS 容器任务授予访问 DynamoDB 的权限。你需要为角色分配合适的 权限策略 ,例如 AmazonDynamoDBFullAccess

四、显式配置

适用于动态设置凭证的场景。以dynamo为例:

复制代码
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.regions.Region;

public class DynamoDbWithCustomCredentials {
    public static void main(String[] args) {
        // 创建基本凭证
        AwsBasicCredentials credentials = AwsBasicCredentials.create(
                "your_access_key_id",
                "your_secret_access_key"
        );

        // 使用这些凭证创建 DynamoDbClient
        DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
                .credentialsProvider(StaticCredentialsProvider.create(credentials))
                .region(Region.US_EAST_1)  // 替换为你的区域
                .build();

        // 使用 DynamoDbClient 执行操作
        System.out.println("DynamoDB Client created with custom credentials.");

        // 关闭客户端
        dynamoDbClient.close();
    }
}

五、使用临时凭证

如果你使用 STS(安全令牌服务) 获得了临时凭证(例如,通过 sts:assumeRole),你需要使用 Session Token 来配置凭证。临时凭证包括 Access Key IDSecret Access KeySession Token

复制代码
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.regions.Region;

public class DynamoDbWithTemporaryCredentials {
    public static void main(String[] args) {
        // 创建临时凭证
        AwsSessionCredentials sessionCredentials = AwsSessionCredentials.create(
                "temporary_access_key_id",
                "temporary_secret_access_key",
                "temporary_session_token"
        );

        // 使用临时凭证创建 DynamoDbClient
        DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
                .credentialsProvider(StaticCredentialsProvider.create(sessionCredentials))
                .region(Region.US_EAST_1)  // 替换为你的区域
                .build();

        // 使用 DynamoDbClient 执行操作
        System.out.println("DynamoDB Client created with temporary credentials.");

        // 关闭客户端
        dynamoDbClient.close();
    }
}
相关推荐
kailp5 小时前
无需本地显卡!跑GPT-SoVITS-V2Pro完整教程
人工智能·gpt·ai·大模型·云计算
一只小白菜7 小时前
阿里云百炼API + Ollama本地部署:大模型开发环境配置全攻略(含PyCharm环境变量避坑指南)
阿里云·云计算
TG_yunshuguoji8 小时前
阿里云代理商:百炼模型部署成本优化指南
人工智能·阿里云·云计算·百炼大模型
AutoMQ8 小时前
360 如何用 AutoMQ 解决千亿级 Kafka 冷读难题
kafka·消息队列·云计算
翼龙云_cloud8 小时前
腾讯云代理商:腾讯云 OpenClaw 一键更新指南
人工智能·云计算·腾讯云·openclaw
长征coder9 小时前
AWS-S2上传提示证书错误
aws
咕噜签名-铁蛋10 小时前
腾讯云TCR企业版实例创建全指南:从前提条件到控制台/API操作步骤
云计算·腾讯云
TG_yunshuguoji10 小时前
阿里云代理商:如何用阿里云AppFlow 为飞书机器人配置定时任务?
人工智能·阿里云·机器人·云计算·飞书
曦月合一10 小时前
调用阿里云手机短信接口
阿里云·云计算
亚马逊云开发者1 天前
SDLC 过时了?从 2x 到 20x 效能的 AIDLC 转型实践 | Kiro + OpenClaw 实战
aws