aws凭证(一)凭证存储

AWS 凭证用于验证身份,并授权对 DynamoDB 等等 AWS 服务的访问。配置了aws凭证后,才可以通过编程方式或从AWS CLI连接访问AWS资源。凭证存储在哪里呢?有以下几个方法:

一、使用文件存储

1、介绍

文件存储适用于长期和多账户配置。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  # 如果使用临时凭证时需要配置此项

如果凭证文件放在非aws默认的目录下,如何获取???

2、文件生成方法

文件是怎么来的,有两种方法,可以使用aws cli配置,也可以手动编辑。

(1) aws cli命令生成

在自动在系统目录(windows在C:\Users\用户名\.aws)下生成两个文件,config和credentials

(2)手动生成

手动创建上述的两个文件,并手动编辑内容。

二、使用环境变量

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

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

如windows设置命令:

复制代码
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  # 如果使用临时凭证

三、硬编码

在代码中写死。适用于动态设置凭证的场景。以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();
    }
}
相关推荐
G皮T9 小时前
【云计算】云平台上的权限管理(四):VDC、企业项目、用户组
云计算·用户组·公有云·混合云·企业项目·vdc·虚拟数据中心
@YDWLCloud11 小时前
用腾讯云国际版搭建全球加速架构:5 分钟实现多地访问提速
服务器·架构·云计算·github·腾讯云
Henry Zhu12312 小时前
VPP中FIB(转发信息库)和VRF(虚拟路由转发)详解:从设计理念到实际应用
网络·计算机网络·云原生·云计算·智能路由器
翼龙云_cloud15 小时前
阿里云渠道商:什么是阿里云无影云手机?
运维·阿里云·智能手机·云计算
Henry Zhu12315 小时前
VPP的NAT插件: NAT44-EI 实战配置指南
网络·物联网·计算机网络·云原生·云计算
翼龙云_cloud16 小时前
腾讯云渠道商:腾讯云轻量服务器和CVM有什么差异?
运维·服务器·云计算·php·腾讯云
wanhengidc16 小时前
服务器受到病毒攻击该怎么办
运维·服务器·科技·云计算
向阳是我16 小时前
v0.app 的 Supabase、Blob 迁移到阿里云教程
阿里云·云计算·ai编程
云计算老刘1 天前
3.Shell 变量基础知识
chrome·正则表达式·centos·云计算
XINVRY-FPGA1 天前
EP4CE30F23I7N Altera Cyclone IV E SRAM FPGA
嵌入式硬件·fpga开发·云计算·硬件工程·信息与通信·信号处理·fpga