#account-id #key-id #access-key #aws-access #decode

aws_account_id_from_key_id

解码AWS账户ID(给定AWS访问密钥ID)

2个版本

0.8.2 2024年2月26日
0.8.1 2024年2月26日

#1206编码

MIT 许可证

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代码

许可证

该项目在 MIT许可证 下开源。

无运行时依赖