- DynamoDB 教程
- DynamoDB - 主页
- DynamoDB - 概述
- DynamoDB - 基本概念
- DynamoDB - 环境
- DynamoDB - 操作工具
- DynamoDB - 数据类型
- DynamoDB - 创建表
- DynamoDB - 加载表
- DynamoDB - 查询表
- DynamoDB - 删除表
- DynamoDB - API 接口
- DynamoDB - 创建项目
- DynamoDB - 获取项目
- DynamoDB - 更新项目
- DynamoDB - 删除项目
- DynamoDB - 批量写入
- DynamoDB - 批量检索
- DynamoDB - 查询
- DynamoDB - 扫描
- DynamoDB - 索引
- 全球二级指数
- 本地二级索引
- DynamoDB - 聚合
- DynamoDB - 访问控制
- DynamoDB - 权限 API
- DynamoDB - 条件
- 网络身份联合
- DynamoDB - 数据管道
- DynamoDB - 数据备份
- DynamoDB - 监控
- DynamoDB - CloudTrail
- DynamoDB-MapReduce
- DynamoDB - 表活动
- DynamoDB - 错误处理
- DynamoDB - 最佳实践
- DynamoDB 有用资源
- DynamoDB - 快速指南
- DynamoDB - 有用的资源
- DynamoDB - 讨论
DynamoDB - 访问控制
DynamoDB 使用您提供的凭据来验证请求。这些凭证是必需的,并且必须包含 AWS 资源访问权限。这些权限几乎涵盖 DynamoDB 的各个方面,小至操作或功能的次要特性。
权限类型
在本节中,我们将讨论 DynamoDB 中的各种权限和资源访问。
验证用户身份
注册时,您提供了密码和电子邮件,用作根凭据。DynamoDB 将此数据与您的 AWS 账户相关联,并使用它来提供对所有资源的完全访问权限。
AWS 建议您仅将根凭证用于创建管理账户。这允许您创建具有较少权限的 IAM 账户/用户。IAM 用户是由 IAM 服务生成的其他账户。他们的访问权限/特权包括访问安全页面和某些自定义权限(例如表修改)。
访问密钥为附加帐户和访问提供了另一种选择。使用它们来授予访问权限,并避免在某些情况下手动授予访问权限。联合用户通过允许通过身份提供商进行访问来提供另一种选择。
行政
AWS 资源仍属于账户的所有权。权限策略管理授予生成或访问资源的权限。管理员将权限策略与 IAM 身份(即角色、组、用户和服务)相关联。他们还将权限附加到资源上。
权限指定用户、资源和操作。注意管理员仅仅是具有管理员权限的帐户。
运营及资源
表仍然是 DynamoDB 中的主要资源。子资源用作附加资源,例如流和索引。这些资源使用唯一的名称,下表中提到了其中一些 -
类型 | ARN(亚马逊资源名称) |
---|---|
溪流 | arn:aws:dynamodb:区域:帐户 ID:表/表名称/流/流标签 |
指数 | arn:aws:dynamodb:区域:帐户 ID:表/表名称/索引/索引名称 |
桌子 | arn:aws:dynamodb:区域:帐户 ID:表/表名称 |
所有权
资源所有者定义为生成资源的 AWS 账户,或负责资源创建中请求身份验证的主体实体账户。考虑一下它在 DynamoDB 环境中如何运作 -
在使用 root 凭据创建表时,您的帐户仍然是资源所有者。
在创建 IAM 用户并授予用户创建表的权限时,您的账户仍然是资源所有者。
在创建 IAM 用户并向该用户以及任何能够担任该角色的人授予创建表的权限时,您的账户仍然是资源所有者。
管理资源访问
访问管理主要需要关注描述用户和资源访问的权限策略。您将策略与 IAM 身份或资源关联。但是,DynamoDB 仅支持 IAM/身份策略。
基于身份的(IAM)策略允许您通过以下方式授予权限 -
- 将权限附加到用户或组。
- 将权限附加到角色以获得跨帐户权限。
其他 AWS 允许基于资源的策略。这些策略允许访问 S3 存储桶等内容。
政策要素
政策定义了行动、效果、资源和原则;并授予执行这些操作的权限。
注意- API 操作可能需要多个操作的权限。
仔细看看以下政策要素 -
资源- ARN 标识此资源。
操作- 关键字标识这些资源操作,以及是否允许或拒绝。
效果- 它指定用户请求操作的效果,意味着允许或拒绝,默认为拒绝。
主体- 这标识附加到策略的用户。
状况
在授予权限时,您可以指定策略何时生效的条件,例如在特定日期。使用条件键表达条件,其中包括 AWS 系统范围键和 DynamoDB 键。这些键将在本教程后面详细讨论。
控制台权限
用户需要某些基本权限才能使用控制台。他们还需要其他标准服务中控制台的权限 -
- 云观察
- 数据管道
- 身份和访问管理
- 通知服务
- 拉姆达
如果 IAM 策略过于有限,用户将无法有效使用控制台。此外,您无需担心仅调用 CLI 或 API 的用户权限。
通用IAM政策
AWS 通过独立 IAM 托管策略涵盖权限中的常见操作。它们提供关键权限,使您可以避免对必须授予的内容进行深入调查。
其中一些如下 -
AmazonDynamoDBReadOnlyAccess - 它通过控制台提供只读访问权限。
AmazonDynamoDBFullAccess - 它通过控制台提供完全访问权限。
AmazonDynamoDBFullAccesswithDataPipeline - 它通过控制台提供完全访问权限,并允许使用数据管道导出/导入。
您当然也可以制定自定义策略。
授予权限:使用 Shell
您可以使用 Javascript shell 授予权限。以下程序显示了典型的权限策略 -
{ "Version": "2016-05-22", "Statement": [ { "Sid": "DescribeQueryScanToolsTable", "Effect": "Deny", "Action": [ "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools" } ] }
您可以查看以下三个示例 -
阻止用户执行任何表操作。
{ "Version": "2016-05-23", "Statement": [ { "Sid": "AllAPIActionsOnTools", "Effect": "Deny", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools" } ] }
阻止对表及其索引的访问。
{ "Version": "2016-05-23", "Statement": [ { "Sid": "AccessAllIndexesOnTools", "Effect": "Deny", "Action": [ "dynamodb:*" ], "Resource": [ "arn:aws:dynamodb:us-west-2:155556789012:table/Tools", "arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*" ] } ] }
阻止用户购买预留容量产品。
{ "Version": "2016-05-23", "Statement": [ { "Sid": "BlockReservedCapacityPurchases", "Effect": "Deny", "Action": "dynamodb:PurchaseReservedCapacityOfferings", "Resource": "arn:aws:dynamodb:us-west-2:155556789012:*" } ] }
授予权限:使用 GUI 控制台
您还可以使用 GUI 控制台创建 IAM 策略。首先,从导航窗格中选择“表” 。在表列表中,选择目标表并按照以下步骤操作。
步骤 1 - 选择访问控制选项卡。
步骤 2 - 选择身份提供商、操作和策略属性。输入所有设置后选择创建策略。
步骤 3 - 选择附加策略说明,并完成每个必需的步骤以将策略与适当的 IAM 角色关联。