2个版本
0.8.2 | 2024年2月26日 |
---|---|
0.8.1 | 2024年2月26日 |
#1206 在 编码
12KB
94 行
从AWS访问密钥ID确定AWS账户ID
给定AWS访问密钥ID(以"A"开头的四字母资源标识符;这对以"I"或"J"开头的旧密钥ID不起作用)解码AWS账户ID。
这是一个小型、单文件库,没有除 std
之外的依赖。仅导出/公开两个函数(下面各有示例)。
用法
这可以作为通过 cargo
安装的 crate。
cargoadd aws_account_id_from_key_id
一旦将作为项目依赖项添加,您可以使用它如下所示
use aws_account_id_from_key_id::*;
fn main() {
let access_key_id = "AKIASP2TPHJSQH3FJXYZ";
// Decode AWS account ID given AWS access key ID
assert_eq!(get_aws_account_id(&access_key_id).unwrap(), "171436882533");
// Get associated AWS resource type given AWS access key ID
assert_eq!(get_associated_resource_type(&access_key_id).unwrap(), "Access key");
}
理由
没有更好的方法来做这件事吗?
是的,使用AWS安全令牌服务(STS)API调用 GetAccessKeyInfo
。示例
aws sts get-access-key-info --access-key-id=<key-id-goes-here>
为什么要写这个,当已经存在完美的Python和Go实现时?
我主要写这个作为一个Rust编程语言的学习练习。我愿意接受反馈,以了解更多关于Rust以及更好地实现它的方法,以及修复代码中的任何错误/逻辑错误。
参考/致谢
这主要基于 Tal Be'ery的研究和Python PoC代码。
- AWS KEY ID简短说明
- AWS访问密钥ID格式
- AWS安全凭证格式
- 从AWS访问密钥获取账户ID
- 研究揭示了隐藏在访问密钥中的AWS账户号
- TruffleHog AWS检测器代码
- 理解唯一ID前缀
许可证
该项目在 MIT许可证 下开源。