DynamoDB 访问控制
DynamoDB 使用您提供的凭据对请求进行身份验证。这些凭证是必需的,并且必须包括 AWS 资源访问权限。这些权限几乎涵盖 DynamoDB 的方方面面,直至操作或功能的次要特性。
权限类型
在本节中,我们将讨论 DynamoDB 中的各种权限和资源访问。
验证用户
在注册时,您提供了密码和电子邮件,用作根凭据。 DynamoDB 将此数据与您的 AWS 账户相关联,并使用它来提供对所有资源的完全访问权限。
AWS 建议您仅将根凭证用于创建管理账户。这允许您创建具有较少权限的 IAM 账户/用户。 IAM 用户是使用 IAM 服务生成的其他账户。他们的访问权限/特权包括访问安全页面和某些自定义权限,如表格修改。
访问密钥为其他帐户和访问权限提供了另一种选择。使用它们来授予访问权限,并避免在某些情况下手动授予访问权限。联合用户提供了另一种选择,允许通过身份提供者进行访问。
管理
AWS 资源仍归帐户所有。权限策略管理授予生成或访问资源的权限。管理员将权限策略与 IAM 身份相关联,即角色、组、用户和服务。他们还为资源附加权限。
权限指定用户、资源和操作。注意管理员只是具有管理员权限的帐户。
运营和资源
表仍然是 DynamoDB 中的主要资源。子资源用作附加资源,例如流和索引。这些资源使用唯一的名称,下表中提到了其中一些-
输入 |
ARN(亚马逊资源名称) |
流 |
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 环境中如何运作-
在使用 root 凭据创建表时,您的帐户仍然是资源所有者。
在创建 IAM 用户并授予用户创建表的权限时,您的账户仍然是资源所有者。
在创建 IAM 用户并授予该用户以及任何能够担任该角色的人创建表的权限时,您的账户仍然是资源所有者。
管理资源访问
访问管理主要需要注意描述用户和资源访问的权限策略。您将策略与 IAM 身份或资源相关联。但是,DynamoDB 仅支持 IAM/身份策略。
基于身份 (IAM) 的策略允许您通过以下方式授予权限-
为用户或组附加权限。
为角色附加权限以获得跨账户权限。
其他 AWS 允许基于资源的策略。这些政策允许访问 S3 存储桶等内容。
政策要素
政策定义了行动、效果、资源和委托人;并授予执行这些操作的权限。
注意-API 操作可能需要多个操作的权限。
仔细查看以下政策要素-
Resource-ARN 标识了这一点。
Action-关键字标识这些资源操作,以及是允许还是拒绝。
Effect-它指定用户请求操作的效果,意味着允许或拒绝,默认为拒绝。
Principal-标识附加到策略的用户。
条件
在授予权限时,您可以指定政策生效的条件,例如在特定日期。使用条件键表达条件,包括 AWS 系统范围内的键和 DynamoDB 键。本教程稍后将详细讨论这些键。
控制台权限
用户需要某些基本权限才能使用控制台。他们还需要其他标准服务中的控制台权限-
云观察
数据管道
身份和访问管理
通知服务
Lambda
如果 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 角色相关联的每个必需步骤。