

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Keyspaces 的安全最佳实践
<a name="best-practices-security"></a>

Amazon Keyspaces（Apache Cassandra 兼容）提供了在您开发和实施自己的安全策略时需要考虑的大量安全功能。以下最佳实践是一般指导原则，并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求，请将其视为有用的考虑因素而不是惯例。

**Topics**
+ [Amazon Keyspaces 的预防性安全最佳实践](best-practices-security-preventative.md)
+ [Amazon Keyspaces 的检测性安全最佳实践](best-practices-security-detective.md)

# Amazon Keyspaces 的预防性安全最佳实践
<a name="best-practices-security-preventative"></a>

以下安全最佳实践属于预防性实践，因为它们可以帮助您预测和预防 Amazon Keyspaces 中的安全事件。

**使用静态加密**  
Amazon Keyspaces 使用 [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) 中存储的加密密钥对存储在表中的所有用户数据进行静态加密。保护您的数据免受未经授权访问，为基础存储提供额外一层数据保护。  
默认情况下，Amazon Keyspac AWS 拥有的密钥 es 使用来加密您的所有表。如果此密钥不存在，系统会为您创建一个。服务默认密钥无法禁用。  
或者，您可以使用[客户自主管理型密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)进行静态加密。有关更多信息，请参阅 [Amazon Keyspaces Encryption at Rest](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html)。

**使用 IAM 角色对 Amazon Keyspaces 的访问进行身份验证**  
用户、应用程序和其他 AWS 服务要访问 Amazon Keyspaces，他们必须在 AWS API 请求中包含有效的 AWS 凭证。您不应将 AWS 证书直接存储在应用程序或 EC2 实例中。这些长期凭证不会自动轮换，如果外泄，可能造成重大业务影响。利用 IAM 角色，可以获得临时访问密钥，用于访问 AWS 服务和资源。  
有关更多信息，请参阅 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

**使用 IAM 策略进行 Amazon Keyspaces 基本授权**  
在授予权限时，您可以决定谁获得权限、他们获得哪些 Amazon Keyspace APIs 的权限，以及您要允许对这些资源执行哪些具体操作。实施最低权限对于减小安全风险以及错误或恶意意图造成的影响至关重要。  
将权限策略附加到 IAM 身份（即用户、组和角色），从而授予对 Amazon Keyspaces 资源执行操作的权限。  
可以通过以下方法实现：  
+ [AWS 托管（预定义）策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)
+ [客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)

**使用 IAM 策略条件进行精细访问控制**  
在 Amazon Keyspaces 中授予权限时，可以指定确定权限策略如何生效的条件。实施最低权限对于减小安全风险以及错误或恶意意图造成的影响至关重要。  
使用 IAM 策略授予权限时，可以指定条件。例如，您可以执行以下操作：  
+ 授予权限，允许用户对特定键空间或表进行只读访问。
+ 根据用户的身份授予权限，允许用户对某个表进行写入访问。
 有关更多信息，请参阅 [Identity-Based Policy Examples](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_id-based-policy-examples.html)。

**考虑客户端加密**  
如果您将敏感或机密数据存储在 Amazon Keyspaces 中，您可能希望将该数据加密到尽可能靠近其源的位置，以便在该数据的整个生命周期内对其进行保护。加密传输中和静态敏感数据有助于确保明文数据不会提供给任何第三方。

# Amazon Keyspaces 的检测性安全最佳实践
<a name="best-practices-security-detective"></a>

以下安全最佳实践属于检测性实践，因为它们可以帮助您检测潜在的安全漏洞和事件。

** AWS CloudTrail 用于监控 AWS Key Management Service (AWS KMS) AWS KMS 密钥使用情况**  
如果您使用[客户管理的 AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)进行静态加密，则该密钥的使用已登录 AWS CloudTrail。 CloudTrail 通过记录对您的账户执行的操作来提供对用户活动的可见性。 CloudTrail 记录有关每个操作的重要信息，包括谁提出了请求、使用的服务、执行的操作、操作的参数以及 AWS 服务返回的响应元素。此信息可帮助您跟踪对 AWS 资源所做的更改并解决操作问题。 CloudTrail 使确保遵守内部政策和监管标准变得更加容易。  
您可以使用 CloudTrail 来审核密钥使用情况。 CloudTrail 创建包含您账户的 AWS API 调用和相关事件历史记录的日志文件。除了通过集成 AWS 服务发出的请求外， AWS SDKs这些日志文件还包括使用控制台和命令行工具发出的所有 AWS KMS API 请求。您可以使用这些日志文件来获取有关何时使用 AWS KMS 密钥、请求的操作、请求者的身份、请求来自的 IP 地址等的信息。有关更多信息，请参见[用 AWS CloudTrail记录 AWS Key Management Service API 调用](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html)和 [AWS CloudTrail 用户指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

**用于 CloudTrail 监控 Amazon Keyspaces 数据定义语言 (DDL) 的操作**  
CloudTrail 通过记录对您的账户执行的操作来提供对用户活动的可见性。 CloudTrail 记录有关每个操作的重要信息，包括谁提出了请求、使用的服务、执行的操作、操作的参数以及 AWS 服务返回的响应元素。此信息可帮助您跟踪对 AWS 资源所做的更改并解决操作问题。 CloudTrail 使确保遵守内部政策和监管标准变得更加容易。  
所有 Amazon Keyspaces [DDL 操作](cql.ddl.md)都会自动登录。 CloudTrail DDL 操作让您可以创建和管理 Amazon Keyspaces 键空间和表。  
当 Amazon Keyspaces 中发生活动时，该活动会与其他 AWS 服务 CloudTrail 事件一起记录在事件历史记录中。有关更多信息，请参阅 [Logging Amazon Keyspaces operations by using AWS CloudTrail](https://docs.aws.amazon.com/keyspaces/latest/devguide/logging-using-cloudtrail.html)。您可以在中查看、搜索和下载最近发生的事件 AWS 账户。有关更多信息，请参阅《*AWS CloudTrail 用户指南》*中的[使用 CloudTrail 事件历史查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。  
[要持续记录您的事件 AWS 账户，包括 Amazon Keyspaces 的事件，请创建跟踪。](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)跟踪允许 CloudTrail 将日志文件传输到亚马逊简单存储服务 (Amazon S3) 存储桶。在控制台创建跟踪记录时，该跟踪记录默认应用于所有 AWS 区域。跟踪记录 AWS 分区所有区域的事件，将日志文件传送至指定的 S3 存储桶。此外，您可以配置其他 AWS 服务，以进一步分析和处理 CloudTrail 日志中收集的事件数据。

**标记 Amazon Keyspaces 资源以进行标识和自动化**  
您可以以标签的形式为 AWS 资源分配元数据。每个标签都是一个简单标注，包含一个客户定义的键和一个可选值，方便管理、搜索和筛选资源。  
标签可实现分组控制。尽管没有固有类型的标签，但利用标签，可以根据用途、所有者、环境或其他条件分类资源。下面是一些示例：  
+ 访问：用于基于标签控制对 Amazon Keyspaces 资源的访问。有关更多信息，请参阅 [基于 Amazon Keyspaces 标签的授权](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)。
+ 安全性：用于确定数据保护设置等要求。
+ 机密性：资源支持的特定数据机密等级的标识符。
+ 环境 – 用于区分开发、测试和生产基础设施。
有关更多信息，请参阅 [AWS tagging strategies](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) 和 [Adding tags and labels to resources](https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html)。