aws-samples/data-perimeter-policy-examples
GitHub: aws-samples/data-perimeter-policy-examples
该项目提供了一套在 AWS 上实施数据边界的示例策略,帮助组织通过 IAM 授权控制措施限制只有受信任的身份、资源和网络才能访问敏感数据。
Stars: 207 | Forks: 33
# 数据边界策略示例
版权所有 Amazon.com, Inc. 或其附属公司。保留所有权利。SPDX-License-Identifier: CC-BY-SA-4.0
## 目录
* [免责声明](#disclaimer)
* [简介](#introduction)
* [入门指南](#getting-started)
* [实施说明](#implementation)
* [许可证摘要](#license-summary)
## 免责声明
示例代码、软件库、命令行工具、概念验证、模板或其他相关技术(包括由我们的员工提供的上述任何内容)均作为 AWS 内容根据 AWS 客户协议,或您与 AWS 之间适用的相关书面协议提供给您。您不应在没有彻底测试并验证其对您的环境的适用性的情况下,将此 AWS 内容用于您的生产环境账户、生产环境或其他关键数据。您有责任根据您特定的质量控制实践和标准,对 AWS 内容(如示例代码)进行测试、保护和优化,以适用于生产级别的使用。此 AWS 内容旨在帮助您实现数据边界目标,但并不全面,可能无法涵盖所有场景。部署 AWS 内容可能会因创建或使用 AWS 收费资源(例如运行 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/pm/ec2/) 实例或使用 [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) 存储)而产生 AWS 费用。
## 简介
本代码库包含示例策略,可帮助您在 AWS 上[实施数据边界](https://aws.amazon.com/identity/data-perimeters-on-aws/)。本代码库中的策略示例涵盖了一些常见模式,仅供参考。您可以对示例进行量身定制和扩展,以满足您所在环境的需求。
## 入门指南
数据边界是一组预防性控制措施,您可以使用它来帮助确保只有受信任的身份才能从预期的网络访问受信任的资源。这些控制措施充当常驻边界,以帮助保护敏感数据免受意外访问和数据泄露风险的影响。
为了帮助您入门,我们介绍了数据边界实施旅程的三个初始阶段:1. 审查您的安全目标,2. 设定您的边界,以及 3. 设计数据边界控制措施。有关该旅程其他阶段(如影响分析)的详细信息,请参阅[在 AWS 上建立数据边界:分析您的账户活动以评估影响并完善控制措施](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-analyze-your-account-activity-to-evaluate-impact-and-refine-controls/)。

**注意**:数据边界是一组 [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) 授权控制措施,可帮助限制对 AWS API 的访问。本代码库不涵盖用于防止未经授权访问的其他类型的安全控制措施,例如网络流量检查和加密。
### 审查您的安全目标
实施数据边界的第一步是确定数据边界控制措施可以在哪些方面帮助改善您的安全态势,或为您组织的安全控制目标优化控制措施的实施。您的控制目标会受到多种因素的影响,例如合规性和监管要求、法律和合同义务、工作负载的类型、数据分类以及您组织的威胁模型。当您的控制目标得到明确定义并排定优先级后,请确定哪些目标可以通过使用数据边界控制措施来实现。
为了更好地为实施数据边界控制措施的迭代风险方法提供依据,您需要了解它们有助于解决哪些安全风险和威胁向量。下表包含了映射到常见安全风险的数据边界控制目标。您可以通过阅读“降低的安全风险”列中链接的博客文章,详细了解每种边界类型所实现的安全目标和降低的风险。
|数据边界 | 控制目标| 降低的安全风险 |
|--- |--- |--- |
|身份边界 |只有受信任的身份才能访问我的资源
只允许受信任的身份从我的网络进行访问 |[组织外身份进行的未经授权的访问](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-identities-to-access-company-data/)| |资源边界 |我的身份只能访问受信任的资源
只能从我的网络访问受信任的资源 |[向组织外资源进行的意外数据移动](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-resources-from-my-organization/) | |网络边界 |我的身份只能从预期的网络访问资源
我的资源只能从预期的网络进行访问 |[在企业环境外使用凭证](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-access-to-company-data-only-from-expected-networks/) | 您的云运营模型和对 AWS 服务的具体使用情况,应能为您说明特定数据边界控制措施的必要性。虽然您可能已经制定了用于实现数据边界目标的现有控制措施,但评估其有效性非常重要。如果这些控制措施无法将风险降低到可接受的水平,或者无法完全实现您的安全目标,实施数据边界控制措施可以提供一种可扩展的解决方案。 ### 设定您的边界 在定义了安全目标并选择了数据边界控制措施之后,您需要定义受信任的身份、受信任的资源和预期的网络对您的组织意味着什么。这些术语定义如下: * **受信任的身份**:您的 AWS 账户中的主体(IAM 角色或用户),或代表您行事的 AWS 服务。 * **受信任的资源**:由您的 AWS 账户或代表您行事的 AWS 服务拥有的资源。 * **预期的网络**:您的本地数据中心和虚拟私有云 (VPC),或代表您行事的 AWS 服务的网络。 为了建立有效的安全边界,您可能需要扩展数据边界的定义,以包含受信任合作伙伴的身份、资源或网络。例如,您可能正在与要求您的主体将数据上传到其账户拥有的 Amazon S3 存储桶或从中下载数据的商业合作伙伴合作。您需要收集您的商业合作伙伴的 AWS 账户 ID,以便将其包含在数据边界策略中。 ### 设计数据边界控制措施 在根据您的业务和安全要求定义了信任边界之后,您就可以开始设计用于强制执行这些边界的授权控制措施。您应该首先查看本代码库中提供的默认数据边界策略示例。有关更多详细信息,请参阅[通用数据边界指南](#General-data-perimeter-guidance)。您可能需要量身定制和扩展示例策略,以满足您的环境需求并涵盖所有预期的访问模式。有关特定于单个 AWS 服务的其他注意事项,请参阅[特定于服务的数据边界指南](#Service-specific-data-perimeter-guidance)。 #### 通用数据边界指南 为了实现数据边界目标,您将主要使用三种策略类型:[服务控制策略 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)、[资源控制策略 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) 和 [VPC 终端节点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoint-policies)。下表说明了数据边界目标与本代码库中提供的默认数据边界策略之间的关系。 |边界类型 | 控制目标| 应用于 | 默认策略示例 | |--- |--- |--- |--- | |身份边界 |只有受信任的身份才能访问我的资源 |资源 |[identity_perimeter_rcp.json](resource_control_policies/identity_perimeter_rcp.json)| |身份边界 | 只允许受信任的身份从我的网络进行访问 |网络 |[default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)| |资源边界 |我的身份只能访问受信任的资源 |身份 |[resource_perimeter_scp.json](service_control_policies/resource_perimeter_scp.json)| |资源边界 |只能从我的网络访问受信任的资源 |网络 |[default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)| |网络边界 |我的身份只能从预期的网络访问资源 |身份 |[network_perimeter_vpceorgid_scp.json](service_control_policies/network_perimeter_vpceorgid_scp.json), [network_perimeter_sourcevpc_scp.json](service_control_policies/network_perimeter_sourcevpc_scp.json)| |网络边界 |我的资源只能从预期的网络进行访问 |资源 |[network_perimeter_vpceorgid_rcp.json](resource_control_policies/network_perimeter_vpceorgid_rcp.json), [network_perimeter_sourcevpc_rcp.json](resource_control_policies/network_perimeter_sourcevpc_rcp.json)| 有关上表中链接的数据边界策略中所包含确切控制措施的信息,请参阅 [service_control_policies](service_control_policies/README.md)、[resource_control_policies](resource_control_policies/README.md) 和 [vpc_endpoint_policies](vpc_endpoint_policies/README.md) 文件夹中的 README.md。 要在您的网络上强制执行数据边界控制措施,请对 [vpc_endpoint_policies](vpc_endpoint_policies) 文件夹中没有提供特定于服务的 VPC 终端节点策略示例的服务使用 [default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)。对于提供了策略示例的服务(例如 AWS Systems Manager 或 Amazon EC2),请从这些策略开始,因为它们考虑了需要对默认数据边界控制措施进行自定义的已知服务访问模式。有关在您的网络上实施数据边界控制措施时需要考虑的数据访问模式的详细信息,请参阅 [vpc_endpoint_policies](vpc_endpoint_policies/README.md) 文件夹中的 README.md。 #### 特定于服务的数据边界指南 在使用某些 AWS 服务之前,您可能需要查看在为某个服务实施数据边界时要考虑的其他注意事项。请参阅[特定于服务的指南](service_specific_guidance/README.md),以确定特定服务是否适用额外的注意事项,以及在通用数据边界指南和默认策略之外,您可能还需要实施哪些控制措施。当 AWS 服务代表您调用其他服务时,您可能需要查看正在使用的所有服务的特定指南,以实施适当的控制措施。例如,当使用通过您的 Amazon S3 存储桶存储数据的服务时,请考虑通过查阅 S3 特定指南来为 Amazon S3 实施数据边界控制措施,以实现全面的控制覆盖。评估您组织的云运营模型、现有安全控制和风险接受标准,以确定是否需要任何额外的控制措施。 **注意**:数据边界控制措施的有效性在很大程度上依赖于正确实施的基础云运营要素,包括账户管理、治理策略、部署机制、运营模型和变更管理流程。有关这些基础知识的全面指导,请参阅[使用多个账户组织您的 AWS 环境](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/organizing-your-aws-environment.html) 和 [卓越运营支柱 - AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)。 #### 标记约定和治理 除了默认和特定于服务的数据边界策略之外,请考虑实施 [data_perimeter_governance_scp.json](service_control_policies/data_perimeter_governance_scp.json) 和 [data_perimeter_governance_rcp.json](resource_control_policies/data_perimeter_governance_rcp.json)。这些策略示例演示了如何保护数据边界控制措施的依赖项,例如用于管理其范围的主体标签和资源标签。 本代码库中的策略示例使用 `aws:PrincipalTag/tag-key` 和 `aws:ResourceTag/tag-key` 全局条件键,通过以下标记约定来控制数据边界防护机制的范围。在您的环境中实施时,您应遵循现有的标记策略或 [AWS 标记最佳实践](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。 请注意,`aws:ResourceTag/tag-key` 仅适用于[支持基于标签进行授权](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)的资源。有关支持的服务操作详细信息,请参阅 [Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)。 1. 为您账户中希望作为网络边界控制目标的 [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) 主体和资源添加标签键 `dp:include:network` 且值设为 `true`。您可能希望首先对人类用户在 AWS Management Console 中以交互方式访问 AWS 服务,或以编程方式(通过 AWS CLI、AWS Tools for PowerShell 或 API)访问服务所使用的 IAM 主体强制执行网络边界控制。 2. 为您账户中应从网络边界中排除的 IAM 主体和资源添加标签键 `dp:exclude:network` 且值设为 `true`。此标签键可用于应该能够在预期网络之外使用 AWS 服务的人类用户和应用程序,或不应应用网络边界的资源。 3. 为您账户中应从身份边界中排除的 IAM 主体和资源添加标签键 `dp:exclude:identity` 且值设为 `true`。此标签键专为应该能够在不受身份边界控制措施限制的情况下使用 AWS 服务的人类用户和应用程序而设计。此标签也可用于不应应用身份边界的资源,例如出于业务原因需要被大量外部身份访问的资源(公共资源)。 4. 为您账户中应从资源边界中排除的 IAM 主体添加标签键 `dp:exclude:resource` 且值设为 `true`。此标签键专为应该能够访问不属于您组织的资源的人类用户和应用程序而设计。 5. 为您账户中应从资源边界中排除的 IAM 主体添加标签键 `dp:exclude:resource:` 且值设为 `true`。此标签键专为应该能够访问不属于您组织的特定服务资源的人类用户和应用程序而设计。
6. 为您账户中应从所有数据边界中排除的 IAM 主体和资源添加标签键 `dp:exclude` 且值设为 `true`。此标签键专为不应受任何边界控制措施限制的人类用户、应用程序和资源而设计。
基于每个单独控制措施对特定数据边界类型产生的影响,上述标签被用于默认、特定于服务和治理数据边界策略中。每个标签可能会出现在多个策略声明中,以基于六个数据边界目标提供广泛的例外情况。您可以根据组织中采用的标记策略和治理,采用更精细的标记约定并修改示例策略。
由于上述标签用于授权,[data_perimeter_governance_scp](service_control_policies/data_perimeter_governance_scp.json) 和 [data_perimeter_governance_rcp](resource_control_policies/data_perimeter_governance_rcp.json) 策略示例包含了保护这些标签免受未经授权更改的声明。在 `data_perimeter_governance_scp` 示例中,只有您组织中拥有 `team` 标签且值设为 `admin` 的主体才能应用和修改这些标签。`data_perimeter_governance_rcp` 演示了如何保护会话标签,并对受信任的 SAML 身份提供商设置的标签提供了例外。
请注意,如果您正在使用 [ Control Tower](https://aws.amazon.com/controltower/) 来集中管理和治理您的账户,您可能还需要排除该服务用于代表您管理账户的 [AWSControlTowerExecution 和其他角色](https://docs.aws.amazon.com/controltower/latest/userguide/roles-how.html)。
## 实施说明
要有效使用本代码库中的示例策略,请按照以下步骤操作:
1. 根据它们有助于实现的控制目标和您的安全要求,确定要实施的策略和边界类型。
2. 根据您对受信任的身份、受信任的资源和预期的网络的定义,替换示例策略中的占位符值:
* 将 `` 替换为您的 [AWS Organizations](https://aws.amazon.com/organizations/) 组织 ID。
* 将 `` 替换为您要部署策略的 AWS 区域。
* 将 `` 替换为您的企业公共 IP 空间。
* 将 `` 替换为构成您要应用策略的资源或 AWS Organizations 实体的网络边界的 VPC ID 列表。
* 如果使用了访问日志记录,请将 `` 替换为属于 Elastic Load Balancing 服务的 AWS 账户 ID(基于您的负载均衡器所在的区域)。有关账户 ID 的完整列表,请参阅[为您的 Classic Load Balancer 启用访问日志](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy)和[您的 Application Load Balancer 的访问日志](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-logging-bucket-permissions)。
* 将 `` 替换为拥有您要求在环境中使用的 [Amazon Elastic Container Registry (Amazon ECR)](https://aws.amazon.com/ecr/) 存储库的 AWS 账户 ID。
* 将 `` 替换为拥有您要求在环境中使用的特定资源的 AWS 账户 ID。
* 替换以下值以支持需要访问第三方资源或由第三方身份进行访问的第三方集成:
* 将 `` 和 `` 替换为第三方的账户 ID。
* 将 `` 替换为第三方集成所需的特定操作。
* 将 `` 替换为由第三方拥有的资源的 Amazon Resource Name (ARN)。
* 如果您没有需要访问您的资源或网络的第三方集成:
* 从资源控制策略 (RCP) 示例的 `aws:PrincipalAccount` 条件键中移除 `` 和 ``。
* 从 VPC 终端节点策略示例中移除 `"Sid": “AllowRequestsByOrgsIdentitiesToThirdPartyResources"` 和 `"Sid": "AllowRequestsByThirdPartyIdentitiesToThirdPartyResources"` 声明。
* 从 `resource_perimeter_scp` SCP 示例中移除 `"Sid":"EnforceResourcePerimeterThirdPartyResources"` 声明。
* 将 ``、`` 和 `` 替换为您受信任的 OIDC 提供商和租户的名称。
* 将 `` 和 `` 替换为应豁免网络限制以进行 AWS 紧急控制台访问的 IAM 主体的 ARN。
* 根据应用数据边界控制措施的标记约定,为您账户中的 IAM 身份和资源添加标签(请参阅本文档前面的[标记约定和治理](#tagging-conventions-and-governance))。
3. 使用 AWS Management Console 或 AWS CLI 部署策略。您也可以使用基础设施即代码和 CI/CD 解决方案自动执行部署。
* 实施 SCP 和 RCP:
* 要使用 AWS Management Console,请向账户或组织单位 (OU) [创建](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html)并[附加](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_attach.html) SCP 和 RCP。
* 要使用 AWS CLI,请向账户或 OU [创建](https://docs.aws.amazon.com/cli/latest/reference/organizations/create-policy.html)并[附加](https://docs.aws.amazon.com/cli/latest/reference/organizations/attach-policy.html)策略。
* 实施基于资源的策略(仅适用于 RCP 尚不支持的服务):
* 有关支持基于资源的策略的服务,请参阅[与 IAM 配合使用的 AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html),并点击 **Resource-based policies** 列中的链接,或参阅 [AWS 文档](https://docs.aws.amazon.com/)(选择适用的服务)以获取有关如何应用基于资源的策略的说明。
* 实施 VPC 终端节点策略:
* 要使用 AWS Management Console,请[创建](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)或[配置](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html) VPC 终端节点。
* 要使用 AWS CLI,请[创建](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint.html)或[修改](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint.html) VPC 终端节点。
## 许可证摘要
该文档根据 Creative Commons Attribution-ShareAlike 4.0 International License 进行授权。请参阅 LICENSE 文件。
本文档中的示例代码根据 MIT-0 许可证提供。请参阅 LICENSE-SAMPLECODE 文件。
只允许受信任的身份从我的网络进行访问 |[组织外身份进行的未经授权的访问](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-identities-to-access-company-data/)| |资源边界 |我的身份只能访问受信任的资源
只能从我的网络访问受信任的资源 |[向组织外资源进行的意外数据移动](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-resources-from-my-organization/) | |网络边界 |我的身份只能从预期的网络访问资源
我的资源只能从预期的网络进行访问 |[在企业环境外使用凭证](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-access-to-company-data-only-from-expected-networks/) | 您的云运营模型和对 AWS 服务的具体使用情况,应能为您说明特定数据边界控制措施的必要性。虽然您可能已经制定了用于实现数据边界目标的现有控制措施,但评估其有效性非常重要。如果这些控制措施无法将风险降低到可接受的水平,或者无法完全实现您的安全目标,实施数据边界控制措施可以提供一种可扩展的解决方案。 ### 设定您的边界 在定义了安全目标并选择了数据边界控制措施之后,您需要定义受信任的身份、受信任的资源和预期的网络对您的组织意味着什么。这些术语定义如下: * **受信任的身份**:您的 AWS 账户中的主体(IAM 角色或用户),或代表您行事的 AWS 服务。 * **受信任的资源**:由您的 AWS 账户或代表您行事的 AWS 服务拥有的资源。 * **预期的网络**:您的本地数据中心和虚拟私有云 (VPC),或代表您行事的 AWS 服务的网络。 为了建立有效的安全边界,您可能需要扩展数据边界的定义,以包含受信任合作伙伴的身份、资源或网络。例如,您可能正在与要求您的主体将数据上传到其账户拥有的 Amazon S3 存储桶或从中下载数据的商业合作伙伴合作。您需要收集您的商业合作伙伴的 AWS 账户 ID,以便将其包含在数据边界策略中。 ### 设计数据边界控制措施 在根据您的业务和安全要求定义了信任边界之后,您就可以开始设计用于强制执行这些边界的授权控制措施。您应该首先查看本代码库中提供的默认数据边界策略示例。有关更多详细信息,请参阅[通用数据边界指南](#General-data-perimeter-guidance)。您可能需要量身定制和扩展示例策略,以满足您的环境需求并涵盖所有预期的访问模式。有关特定于单个 AWS 服务的其他注意事项,请参阅[特定于服务的数据边界指南](#Service-specific-data-perimeter-guidance)。 #### 通用数据边界指南 为了实现数据边界目标,您将主要使用三种策略类型:[服务控制策略 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)、[资源控制策略 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) 和 [VPC 终端节点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoint-policies)。下表说明了数据边界目标与本代码库中提供的默认数据边界策略之间的关系。 |边界类型 | 控制目标| 应用于 | 默认策略示例 | |--- |--- |--- |--- | |身份边界 |只有受信任的身份才能访问我的资源 |资源 |[identity_perimeter_rcp.json](resource_control_policies/identity_perimeter_rcp.json)| |身份边界 | 只允许受信任的身份从我的网络进行访问 |网络 |[default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)| |资源边界 |我的身份只能访问受信任的资源 |身份 |[resource_perimeter_scp.json](service_control_policies/resource_perimeter_scp.json)| |资源边界 |只能从我的网络访问受信任的资源 |网络 |[default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)| |网络边界 |我的身份只能从预期的网络访问资源 |身份 |[network_perimeter_vpceorgid_scp.json](service_control_policies/network_perimeter_vpceorgid_scp.json), [network_perimeter_sourcevpc_scp.json](service_control_policies/network_perimeter_sourcevpc_scp.json)| |网络边界 |我的资源只能从预期的网络进行访问 |资源 |[network_perimeter_vpceorgid_rcp.json](resource_control_policies/network_perimeter_vpceorgid_rcp.json), [network_perimeter_sourcevpc_rcp.json](resource_control_policies/network_perimeter_sourcevpc_rcp.json)| 有关上表中链接的数据边界策略中所包含确切控制措施的信息,请参阅 [service_control_policies](service_control_policies/README.md)、[resource_control_policies](resource_control_policies/README.md) 和 [vpc_endpoint_policies](vpc_endpoint_policies/README.md) 文件夹中的 README.md。 要在您的网络上强制执行数据边界控制措施,请对 [vpc_endpoint_policies](vpc_endpoint_policies) 文件夹中没有提供特定于服务的 VPC 终端节点策略示例的服务使用 [default_endpoint_policy.json](vpc_endpoint_policies/default_endpoint_policy.json)。对于提供了策略示例的服务(例如 AWS Systems Manager 或 Amazon EC2),请从这些策略开始,因为它们考虑了需要对默认数据边界控制措施进行自定义的已知服务访问模式。有关在您的网络上实施数据边界控制措施时需要考虑的数据访问模式的详细信息,请参阅 [vpc_endpoint_policies](vpc_endpoint_policies/README.md) 文件夹中的 README.md。 #### 特定于服务的数据边界指南 在使用某些 AWS 服务之前,您可能需要查看在为某个服务实施数据边界时要考虑的其他注意事项。请参阅[特定于服务的指南](service_specific_guidance/README.md),以确定特定服务是否适用额外的注意事项,以及在通用数据边界指南和默认策略之外,您可能还需要实施哪些控制措施。当 AWS 服务代表您调用其他服务时,您可能需要查看正在使用的所有服务的特定指南,以实施适当的控制措施。例如,当使用通过您的 Amazon S3 存储桶存储数据的服务时,请考虑通过查阅 S3 特定指南来为 Amazon S3 实施数据边界控制措施,以实现全面的控制覆盖。评估您组织的云运营模型、现有安全控制和风险接受标准,以确定是否需要任何额外的控制措施。 **注意**:数据边界控制措施的有效性在很大程度上依赖于正确实施的基础云运营要素,包括账户管理、治理策略、部署机制、运营模型和变更管理流程。有关这些基础知识的全面指导,请参阅[使用多个账户组织您的 AWS 环境](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/organizing-your-aws-environment.html) 和 [卓越运营支柱 - AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)。 #### 标记约定和治理 除了默认和特定于服务的数据边界策略之外,请考虑实施 [data_perimeter_governance_scp.json](service_control_policies/data_perimeter_governance_scp.json) 和 [data_perimeter_governance_rcp.json](resource_control_policies/data_perimeter_governance_rcp.json)。这些策略示例演示了如何保护数据边界控制措施的依赖项,例如用于管理其范围的主体标签和资源标签。 本代码库中的策略示例使用 `aws:PrincipalTag/tag-key` 和 `aws:ResourceTag/tag-key` 全局条件键,通过以下标记约定来控制数据边界防护机制的范围。在您的环境中实施时,您应遵循现有的标记策略或 [AWS 标记最佳实践](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。 请注意,`aws:ResourceTag/tag-key` 仅适用于[支持基于标签进行授权](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)的资源。有关支持的服务操作详细信息,请参阅 [Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)。 1. 为您账户中希望作为网络边界控制目标的 [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) 主体和资源添加标签键 `dp:include:network` 且值设为 `true`。您可能希望首先对人类用户在 AWS Management Console 中以交互方式访问 AWS 服务,或以编程方式(通过 AWS CLI、AWS Tools for PowerShell 或 API)访问服务所使用的 IAM 主体强制执行网络边界控制。 2. 为您账户中应从网络边界中排除的 IAM 主体和资源添加标签键 `dp:exclude:network` 且值设为 `true`。此标签键可用于应该能够在预期网络之外使用 AWS 服务的人类用户和应用程序,或不应应用网络边界的资源。 3. 为您账户中应从身份边界中排除的 IAM 主体和资源添加标签键 `dp:exclude:identity` 且值设为 `true`。此标签键专为应该能够在不受身份边界控制措施限制的情况下使用 AWS 服务的人类用户和应用程序而设计。此标签也可用于不应应用身份边界的资源,例如出于业务原因需要被大量外部身份访问的资源(公共资源)。 4. 为您账户中应从资源边界中排除的 IAM 主体添加标签键 `dp:exclude:resource` 且值设为 `true`。此标签键专为应该能够访问不属于您组织的资源的人类用户和应用程序而设计。 5. 为您账户中应从资源边界中排除的 IAM 主体添加标签键 `dp:exclude:resource:
标签:AWS, DPI, Homebrew安装, Streamlit, 数据边界, 策略配置, 访问控制, 身份与访问管理