

# SEC03-BP07 分析公共和跨账户访问
<a name="sec_permissions_analyze_cross_account"></a>

持续监控重点关注公共访问和跨账户访问的调查发现。将公共访问和跨账户访问限制为仅限需要此访问的特定资源。

 **期望结果：**了解您的哪些 AWS 资源是共享的，以及与谁共享。持续监控和审计您的共享资源，以验证它们仅与授权的主体共享。

 **常见反模式：**
+  不保留共享资源的清单。
+  跨账户访问或公开访问资源时，没有遵循流程。

 **在未建立这种最佳实践的情况下暴露的风险等级：**低 

## 实施指导
<a name="implementation-guidance"></a>

 如果您的账户在 AWS Organizations 中，您可以向整个组织、特定组织单位或个人账户授予资源访问权限。如果您的账户不是某个组织的成员，您可以与个人账户共享资源。您可以使用基于资源的策略 [例如 [Amazon Simple Storage Service（Amazon S3）存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)] 或通过允许其他账户中的主体代入您账户中的 IAM 角色来授予直接跨账户访问权限。使用资源策略时，请验证访问权限是否仅授予给经过授权的主体。建立一个流程来审批所有需要可公开访问的资源。

 [AWS Identity and Access Management Access Analyzer](https://aws.amazon.com/iam/features/analyze-access/) 使用[可证明安全性](https://aws.amazon.com/security/provable-security/)来标识从账户的外部访问某个资源时的所有访问路径。它持续审核资源策略，并报告公开访问和跨账户访问的调查发现，以使您能够轻松分析可能非常宽泛的访问权限。请考虑将 IAM Access Analyzer 与 AWS Organizations 一起配置，以验证您是否能够查看所有账户。IAM Access Analyzer 还允许您在部署资源权限之前[预览调查发现](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html)。这样，您便可以验证策略更改仅按照意图，授权对您资源的公共和跨账户访问。在设计多账户访问权限时，您可以使用[信任策略](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/)来控制在何种情况下可代入某个角色。例如，您可以使用 [`PrincipalOrgId` 条件键拒绝尝试从您的 AWS Organizations 之外代入角色](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/)。

 [AWS Config 可以报告配置错误的资源](https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-Publicly-Accessible-Resources.html)，并可以通过 AWS Config 策略检查来检测配置了公有访问权限的资源。诸如 [AWS Control Tower](https://aws.amazon.com/controltower/) 和 [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) 等服务简化了跨 AWS Organizations 的侦测性控制和护栏的部署，可以识别并修复公开暴露的资源。例如，AWS Control Tower 具有托管防护机制，可以检测是否有任何[可由 AWS 账户恢复的 Amazon EBS 快照](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)。

### 实施步骤
<a name="implementation-steps"></a>
+  **考虑将 [AWS Config 用于 AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-config.html)：**AWS Config 允许您将 AWS Organizations 中多个账户的结果聚合到委派管理员账户中。这样可提供全面的视图，并允许您[跨账户部署 AWS Config 规则以检测可公开访问的资源](https://docs.aws.amazon.com/config/latest/developerguide/config-rule-multi-account-deployment.html)。
+  **配置 AWS Identity and Access Management Access Analyzer：**IAM Access Analyzer 有助于您识别组织和账户中[与外部实体共享的](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html)资源，例如 Amazon S3 存储桶或 IAM 角色。
+  **在 AWS Config 中使用自动修复来响应 Amazon S3 存储桶的公共访问配置中的更改：**[您可以自动启用 Amazon S3 存储桶的阻止公共访问设置](https://aws.amazon.com/blogs/security/how-to-use-aws-config-to-monitor-for-and-respond-to-amazon-s3-buckets-allowing-public-access/)。
+  **实施监控和警报，以确定 Amazon S3 存储桶是否已变为公共：**您必须具备[监控或警报机制](https://aws.amazon.com/blogs/aws/amazon-s3-update-cloudtrail-integration/)，以便确定 Amazon S3 屏蔽公共访问权限何时关闭，以及 Amazon S3 存储桶是否变为公共。此外，如果您正在使用 AWS Organizations，您可以创建[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)，以阻止对 Amazon S3 公共访问策略进行更改。[AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html) 可对具有开放访问权限的 Amazon S3 存储桶进行检查。如果向每个人授予“上传/删除”权限，那么任何人都可以向存储桶添加项目或者修改或删除存储桶中的项目，这样会产生潜在的安全问题。Trusted Advisor 检查可检查显式存储桶权限，以及可能覆盖存储桶权限的关联存储桶策略。您也可以使用 AWS Config 来监控 Amazon S3 存储桶是否具有公共访问权限。有关更多信息，请参阅《[如何使用 AWS Config 来监控和响应允许公共访问的 Amazon S3 存储桶](https://aws.amazon.com/blogs/security/how-to-use-aws-config-to-monitor-for-and-respond-to-amazon-s3-buckets-allowing-public-access/)》。

 在审核 Amazon S3 存储桶的访问控制时，务必考虑存储在存储桶中的数据的性质。[Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/findings-types.html) 是一项旨在协助您发现和保护敏感数据的服务，如个人身份信息（PII）、受保护健康信息（PHI）以及诸如私有密钥或 AWS 访问密钥等凭证。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [使用 AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html?ref=wellarchitected)
+ [AWS Control Tower 控件库 ](https://docs.aws.amazon.com/controltower/latest/userguide/controls-reference.html)
+  [AWS 基础安全最佳实践标准](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)
+  [AWS Config 托管规则](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) 
+  [AWS Trusted Advisor 检查引用](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor-check-reference.html) 
+ [ 通过 Amazon EventBridge 监控 AWS Trusted Advisor 的检查结果 ](https://docs.aws.amazon.com/awssupport/latest/user/cloudwatch-events-ta.html)
+ [ 管理组织内所有账户的 AWS Config 规则 ](https://docs.aws.amazon.com/config/latest/developerguide/config-rule-multi-account-deployment.html)
+ [AWS Config 和 AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-config.html)
+ [ 将您的 AMI 设为可在 Amazon EC2 中公开使用 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-intro.html#block-public-access-to-amis)

 **相关视频：**
+ [保护多账户环境的最佳实践](https://www.youtube.com/watch?v=ip5sn3z5FNg)
+ [深入了解 IAM Access Analyzer](https://www.youtube.com/watch?v=i5apYXya2m0)