56个版本 (稳定版)
新版本 1.45.0 | 2024年8月16日 |
---|---|
1.42.0 | 2024年7月22日 |
1.20.0 | 2024年3月26日 |
1.10.0 | 2023年12月21日 |
0.11.0 | 2023年11月21日 |
#4 in #permissions
每月下载 739 次
用于 avp-local-agent
2.5MB
38K SLoC
aws-sdk-verifiedpermissions
Amazon Verified Permissions 是亚马逊网络服务提供的一种权限管理服务。您可以使用Verified Permissions来管理应用程序的权限,并根据这些权限授权用户访问。使用Verified Permissions,应用程序开发者可以根据用户、资源以及请求的操作信息授予访问权限。您还可以评估其他信息,如组成员资格、资源的属性以及会话上下文,例如请求时间和IP地址。Verified Permissions通过允许您为应用程序创建和存储授权策略来管理这些权限,例如面向消费者的网站和企业业务系统。
Verified Permissions 使用Cedar作为策略语言来表达您的权限要求。Cedar支持基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)授权模型。
有关在您的应用程序中配置、管理和使用Amazon Verified Permissions的更多信息,请参阅Amazon Verified Permissions 用户指南。
有关Cedar策略语言的更多信息,请参阅Cedar 策略语言指南。
当您编写引用主体、资源和操作的Cedar策略时,您可以定义每个元素使用的唯一标识符。我们强烈建议您遵循以下最佳实践
- 对所有主体和资源标识符使用通用唯一识别码(UUIDs)。例如,如果用户jane离开公司,之后你让其他人使用名字jane,那么新用户将自动获得通过引用User::"jane"的政策授予的一切访问权限。Cedar无法区分新旧用户。这适用于主体和资源标识符。始终使用保证唯一且不会重复使用的标识符,以确保您不会因策略中存在旧标识符而不小心授予访问权限。在使用UUID表示实体时,我们建议您随后使用//注释指定符和实体的“友好”名称。这有助于使您的策略更容易理解。例如:principal == User::"a1b2c3d4-e5f6-a1b2-c3d4-EXAMPLE11111",// alice
- 不要将个人信息、机密信息或敏感信息包含在您主体或资源的唯一标识符中。这些标识符包含在CloudTrail轨迹中共享的日志条目中。
几个操作返回看似相似但用途不同的结构。随着产品中新功能的添加,一个操作参数中使用的结构可能需要以在另一个操作中相同的参数看来没有意义的方式进行更改。为了帮助您理解每个结构的用途,以下命名约定用于这些结构
- 以Detail结尾的参数类型结构用于Get操作。
- 以Item结尾的参数类型结构用于List操作。
- 不使用后缀的参数类型结构用于突变(创建和更新)操作。
入门指南
许多服务和操作都有示例,请查看GitHub中的示例文件夹。
SDK为每个AWS服务提供一个crate。您必须在Rust项目中将Tokio作为依赖项添加,以执行异步代码。要将aws-sdk-verifiedpermissions
添加到项目中,请将以下内容添加到您的Cargo.toml文件中
[dependencies]
aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
aws-sdk-verifiedpermissions = "1.45.0"
tokio = { version = "1", features = ["full"] }
然后在代码中,可以使用以下方式创建客户端
use aws_sdk_verifiedpermissions as verifiedpermissions;
#[::tokio::main]
async fn main() -> Result<(), verifiedpermissions::Error> {
let config = aws_config::load_from_env().await;
let client = aws_sdk_verifiedpermissions::Client::new(&config);
// ... make some calls with the client
Ok(())
}
有关可以调用什么以及每个调用的输入和输出的信息,请参阅客户端文档。
使用SDK
在SDK发布之前,我们将向开发者指南中添加有关使用SDK的信息。您可以通过打开一个问题并提出您要尝试做什么来建议指南的额外部分。
获取帮助
- GitHub讨论 - 用于想法、RFC和一般问题
- GitHub问题 - 用于错误报告和功能请求
- 生成的文档(最新版本)
- 用法示例
许可协议
本项目采用Apache-2.0许可协议。
依赖项
~8–20MB
~285K SLoC