86 个版本 (42 个稳定版)
新 1.40.0 | 2024 年 8 月 16 日 |
---|---|
1.37.0 | 2024 年 7 月 22 日 |
1.19.0 | 2024 年 3 月 26 日 |
1.9.0 | 2023 年 12 月 21 日 |
0.0.0 |
|
68 在 网络编程 中排名
84,021 每月下载量
用于 31 个软件包(直接使用 24 个)
5.5MB
64K SLoC
aws-sdk-kms
密钥管理服务(KMS)是一种加密和密钥管理 Web 服务。本指南描述了您可以编程调用的 KMS 操作。有关 KMS 的一般信息,请参阅 密钥管理服务开发者指南。
我们建议您使用 Amazon Web Services SDK 进行程序化 API 调用到 KMS。
如果您在与 Amazon Web Services 通信时需要使用 FIPS 140-2 认证的加密模块,请使用您首选的 Amazon Web Services 区域中的 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅 Amazon Web Services 通用参考 中密钥管理服务主题下的 服务端点。
所有 KMS API 调用都必须签名并使用传输层安全性(TLS)传输。KMS 建议您始终使用最新支持的 TLS 版本。客户端还必须支持具有完美前向安全性(PFS)的加密套件,例如临时 Diffie-Hellman(DHE)或椭圆曲线临时 Diffie-Hellman(ECDHE)。大多数现代系统(如 Java 7 及更高版本)都支持这些模式。
签名请求
请求必须使用访问密钥 ID 和秘密访问密钥进行签名。我们强烈建议您不要使用您的 Amazon Web Services 账户根访问密钥 ID 和秘密访问密钥进行日常工作。您可以使用 IAM 用户或使用安全令牌服务(STS)生成临时安全凭证,并使用这些凭证签名请求。
所有 KMS 请求都必须使用 签名版本 4 进行签名。
记录 API 请求
密钥管理系统(KMS)支持云追踪(CloudTrail)服务,该服务记录您的亚马逊网络服务(Amazon Web Services)账户的API调用和相关事件,并将它们发送到您指定的亚马逊S3存储桶。通过使用云追踪收集的信息,您可以确定对KMS提出了哪些请求,谁提出的请求,请求的时间等。要了解更多关于云追踪的信息,包括如何启用它和查找日志文件,请参阅云追踪用户指南。
其他资源
有关凭证和请求签名的信息,请参阅以下内容
- 亚马逊网络服务安全凭证 - 本主题提供有关用于访问亚马逊网络服务的凭证类型的通用信息。
- 临时安全凭证 - IAM用户指南本节描述了如何创建和使用临时安全凭证。
- 签名版本4签名过程 - 这一系列主题将指导您使用访问密钥ID和秘密访问密钥对请求进行签名的过程。
常用API操作
在本指南中讨论的API操作中,以下操作对于大多数应用程序最有用。您可能还会使用控制台执行除这些操作之外的其他操作,例如创建密钥和分配策略。
- 加密
- 解密
- 生成数据密钥
- 不使用明文生成数据密钥
入门指南
许多服务和操作都提供了示例,请查看GitHub中的示例文件夹。
SDK为每个AWS服务提供了一个crate。您必须将Tokio作为依赖项添加到Rust项目中,以执行异步代码。要将aws-sdk-kms
添加到项目中,请在您的Cargo.toml
文件中添加以下内容
[dependencies]
aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
aws-sdk-kms = "1.40.0"
tokio = { version = "1", features = ["full"] }
然后在代码中,可以使用以下方式创建一个客户端
use aws_sdk_kms as kms;
#[::tokio::main]
async fn main() -> Result<(), kms::Error> {
let config = aws_config::load_from_env().await;
let client = aws_sdk_kms::Client::new(&config);
// ... make some calls with the client
Ok(())
}
有关可以做出的调用以及每个调用输入和输出的信息,请参阅客户端文档。
使用SDK
在SDK发布之前,我们将向开发者指南添加有关使用SDK的信息。您可以通过打开一个问题并描述您正在尝试做什么来建议指南的附加部分。
获取帮助
- GitHub讨论 - 对于想法、RFC和一般问题
- GitHub问题 - 对于错误报告和功能请求
- 生成的文档(最新版本)
- 使用示例
许可
本项目采用Apache-2.0许可协议。
依赖项
~8–20MB
~283K SLoC