amazon-web-services - DynamoDB 细粒度访问控制和二级索引
问题描述
所以,我目前正在制作一个具有多个索引的 DynamoDB 表并尝试管理访问控制。
我有一个键(organizationId),我不想用作我的二级索引分区或排序键,因为它在查询方面几乎毫无意义。
DynamoDB 表
- 表名:执行
- 分区键:OrganizationId(字符串)
DynamoDB 二级索引
- 主分区键:processId(字符串)
- 主排序键:状态(数字)
以下 IAM 政策条件是否会有效地限制对基于 organizationId 的二级索引的访问?
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"anOrganizationId / Variable"
]
}
}
解决方案
好的,我可以建议 - 你实际上可以将第二个索引作为“OrganizationId#processId” - 搜索时应该始终知道组织 ID - 因为你计划我猜想搜索具有特定进程 ID 的组织内的所有项目?
这应该对你有用(在索引上,而不是表上)
"Condition": {
"ForAllValues:StringLike": {
"dynamodb:LeadingKeys": "${aws:PrincipalTag/organizationId}#*"
},
如果我假设标签带有 org id
推荐阅读
- generics - 将 JSON 数组转换为列表的更好方法
给定一个 KClass 通过 Gson - java - 如何在任务执行器中使用阻塞队列中的任务实现公平性
- javascript - 如何测试 JSX 表单输入字段与 JavaScript 变量的绑定?
- android - Android中的微调器(带有电话代码和自动国家识别)
- go - 反序列化未知 Go 的 gob blob
- sql - 给出一些指令 SQL 如何找到 AVG
- python - 跨平台环境路径
- python - 如何在 Python 中实现 Selenium 多个 WebDriverWait 的方法链接
- javascript - react-native 开源项目不起作用
- javascript - 博德玛斯计算器