DynamoDB使用您提供的凭据来验证请求.这些凭据是必需的,必须包含AWS资源访问权限.这些权限几乎涵盖DynamoDB的每个方面,直至操作或功能的次要功能.
权限类型
在本节中,我们将讨论有关DynamoDB中的各种权限和资源访问.
验证用户
在注册时,您提供了一个密码和电子邮件,用作root凭据. DynamoDB将此数据与您的AWS账户相关联,并使用它来提供对所有资源的完全访问权限.
AWS建议您仅将root凭据用于创建管理帐户.这允许您创建具有较少权限的IAM帐户/用户. IAM用户是使用IAM服务生成的其他帐户.他们的访问权限/权限包括访问安全页面和某些自定义权限,如表格修改.
访问键为其他帐户和访问提供了另一种选择.使用它们来授予访问权限,并避免在某些情况下手动授予访问权限.联合用户通过允许通过身份提供商进行访问来提供另一种选择.
管理
AWS资源仍属于帐户所有权.权限策略管理授予生成或访问资源的权限.管理员将权限策略与IAM身份相关联,这意味着角色,组,用户和服务.它们还附加了对资源的权限.
权限指定用户,资源和操作.注意管理员只是具有管理员权限的帐户.
操作和资源
表仍然是DynamoDB中的主要资源.子资源用作附加资源,例如流和索引.这些资源使用唯一的名称,其中一些在下表中提及 :
键入 | ARN(亚马逊资源名称) |
---|---|
Stream | arn:aws:dynamodb:region:account-id:table/table-name/stream/stream-label |
索引 | arn:aws :dynamodb:region:account-id:table/table-name/index/index-name |
表 | arn:aws:dynamodb:region:account-id:table/table-name |
所有权
资源所有者被定义为产生资源的AWS账户,或负责资源创建中的请求认证的主要实体账户.请考虑它在DynamoDB环境中的运行方式 :
在使用根凭据创建表时,您的帐户仍然是资源所有者.
在创建IAM用户并授予用户创建表的权限时,您的帐户仍然是资源所有者.
在创建IAM用户并授予用户权限以及任何能够担任该角色的人员(创建表格的权限)时,您的帐户仍然是资源所有者.
管理资源访问
访问管理主要需要关注描述用户和资源访问的权限策略.您将策略与IAM身份或资源相关联.但是,DynamoDB仅支持IAM/身份策略.
基于身份的(IAM)策略允许您以下列方式授予权限 :
将权限附加到用户或组.
为角色附加跨帐户权限的权限.
其他AWS允许基于资源的策略.这些策略允许访问诸如S3存储桶之类的东西.
策略元素
策略定义操作,效果,资源和主体;并授予执行这些操作的权限.
注意 : API操作可能需要多个操作的权限.
仔细查看以下政策元素 :
资源 : ARN识别出这一点.
行动 : 关键字标识这些资源操作,以及是否允许或拒绝.
效果 : 它指定用户请求操作的效果,即允许或拒绝拒绝作为默认值.
Principal : 这标识了附加到策略的用户.
条件
在授予权限时,您可以指定策略何时变为活动状态(例如特定日期)的条件.使用条件键表达条件,包括AWS系统范围的密钥和DynamoDB密钥.这些密钥将在本教程后面详细讨论.
控制台权限
用户需要某些基本权限才能使用控制台.他们还要求其他标准服务中的控制台权限减去;
CloudWatch
数据管道
身份和访问管理
通知服务
Lambda
如果IAM策略证明太有限,则用户无法有效使用控制台.此外,您无需担心仅调用CLI或API的用户权限.
常用Iam策略
AWS涵盖常见操作具有独立IAM托管策略的权限.它们提供关键权限,允许您避免深入调查您必须授予的内容.
其中一些如下 :
AmazonDynamoDBReadOnlyAccess : 它通过控制台提供只读访问权限.
AmazonDynamoDBFullAccess : 它通过控制台提供完全访问权限.
AmazonDynamoDBFullAccesswithDataPipeline : 它通过控制台提供完全访问权限,并允许使用数据管道导出/导入.
您还可以制定自定义策略.
授予权限:使用命令行管理程序
您可以使用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" } ] }
你可以查看三个示例如下 :
阻止用户执行任何表操作.
{"版本":"2016-05-23","声明":[ {"Sid":"AllAPIActionsOnTools","效果":"拒绝","动作":"dynamodb:*","资源":"arn:aws:dynamo db:us-west-2:155556789012: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/*" ] } ] }
授予权限:使用GUI控制台
您还可以使用GUI控制台创建IAM策略.首先,从导航窗格中选择表.在表格列表中,选择目标表格并按照以下步骤操作.
步骤1 : 选择访问控制标签.
第2步 : 选择身份提供者,操作和策略属性.输入所有设置后,选择创建政策.
步骤3 : 选择附加政策说明,并完成将政策与相应的IAM角色相关联的所有必需步骤.