- 首页
- 入门
安全基础知识
简介
什么是云安全?
什么是云安全? 与本地网络中的传统安全性非常相似,云安全涉及为您的应用程序构建安全、高性能、弹性和高效的基础架构的实践。云安全包括实施旨在防止未经授权访问的控制措施,以及在需要时进行检测、响应和补救的控制措施。云安全可能涉及网络和基础设施安全、主机和端点安全、数据保护和加密、身份管理、应用程序安全以及日志、监控和威胁检测。云安全不是一回事,而是一种使用工具和技术来保护组织的数据、资源和流程的实践。
什么是责任共担模型?
安全性和合规性是 AWS 和客户的共同责任。通过遵循这种共享模式,客户可以减轻运营负担,因为AWS负责运营、管理和控制云的 “组件”。“ 这让客户可以专注于构建应用程序和实施服务,同时承担保护这些服务的 “云端” 责任。“ 阅读有关责任共担模型的更多信息。
开始保护您的 AWS 账户
当您首次创建新的 AWS 账户时,需要遵循许多建议的步骤来安全地管理和访问该账户。
root 用户
安全联系人
接下来,您应该为您的账户分配备用安全联系人。备用安全联系人将收到与安全相关的通知,包括来自 AWS 信任与安全团队的通知。您可以在博客文章中详细了解在账户设置初期设置此联系信息的重要性。更新您的 AWS 账户中的备用安全联系人以获得及时的安全通知。
区域控制
AWS CLI 和控制台访问权限
此时,您已经保护了根用户,创建了一个或多个 IAM 用户,分配了安全联系人,并锁定了工作负载可以运行的区域。接下来,让我们考虑用户将如何与 AWS 资源进行交互。有两种主要的交互方法:AWS CLI 和 AWS 管理控制台。建议为 AWS CLI 和控制台设置单点登录。有关如何使用 AWS IAM 身份中心集中管理访问权限的详细信息,请参阅配置 AWS CLI 以使用 AWS IA M 身份中心(AWS 单点登录的后续版本)一文。
IAM 组
保护账户的下一步是设置 AWS IAM 用户组来控制访问权限。与其通过直接对用户设置策略来控制单个用户的访问权限,不如创建一个群组,为其分配所需的权限,然后向该群组分配用户。用户将继承该组的权限。这为向许多用户提供访问控制提供了一种更具可扩展性的方式。了解 IAM 和 IAM 群组很重要,因为它们跨越多种服务。IAM 是一项在某种程度上与所有 AWS 服务交互的服务,因此请务必花时间熟悉 IAM。
从一开始就遵循这些做法将有助于提供对您的 AWS 资源的安全访问。接下来,我们将讨论如何保护您在 AWS 上构建的基础设施。
保护您构建的基础架构
您构建的基础架构经常被忽视,因为它是底层架构的一部分,而不是面向客户的。但是,如果基础设施出现故障,您为客户提供的服务就会失效。出于这个原因,从第一天起就必须保护基础架构。
亚马逊 VPC 安全
在构建云基础设施时,您将首先创建亚马逊虚拟私有云 (Amaz on VPC)。这是您定义的虚拟网络(创建账户时会在每个区域创建默认网络),允许您启动资源。VPC 与传统网络类似,因为它分配了 CIDR IP 地址范围,并通过创建子网进行细分。您的子网可用于为不同的资源集提供隔离。子网可以是公共的也可以是私有的。公共子网有通往互联网网关的路由,可以通过该网关访问互联网,如果相关的访问控制允许,可以从互联网访问。私有子网也有路由表,但没有通往互联网网关的路由,因此默认情况下无法访问互联网,也无法从互联网访问。要使私有子网中的资源能够访问互联网,需要一个 NAT 网关。在子网级别,网络访问控制列表 (ACL) 允许或拒绝特定的入站或出站流量。您可以使用 VPC 的默认网络 ACL,也可以为您的 VPC 创建自定义网络 ACL。网络 ACL 是编号列表,按自上而下的顺序处理,并且是无状态的。这意味着您需要一个入站和出站网络 ACL 规则来允许双向流量。
安全组
在您的 VPC 中部署 EC2 资源时,您会将安全组与之关联。安全组控制可以到达 EC2 资源的入站和出站流量。安全组与防火墙类似,但它们不仅可以使用 IP 地址列表或范围,还可以指向所谓的资源引用。资源引用是一个命名组,用于维护分配给该组中每个资源的 IP 地址的更新列表。例如,如果您创建一个自动扩展组来启动 Amazon EC2 实例,则每个实例在启动时都会分配一个新的 IP。通过向这些实例添加安全组,您可以通过 EC2 实例的安全组 ID 授予对数据库服务器安全组的访问权限,启动的任何新 EC2 实例都将有权访问数据库,而无需将其 IP 地址添加到允许列表中。
安全组规则与网络 ACL 类似,因为当您创建它们时,会在端口、协议和地址上进行匹配,但它们是有状态的,您可以将它们视为类似于状态防火墙。当您创建允许特定类型流量的条目时,无需创建与返回流量相匹配的规则;处于有状态时,将允许返回流量。为了更好地了解安全组和 ACL 的交互方式,此比较很有用。
AWS 网络防火墙和 DDoS 保护
要增加额外的基础设施安全层,您可以部署 AWS 网络防火墙。网络防火墙是一项托管服务,可为您的 Amazon VPC 部署保护。与安全组相比,它可以提供更精细的保护,因为它可以整合流量中的上下文,例如跟踪连接和协议识别,以执行诸如阻止您的 VPC 使用未经授权的协议访问域等策略。这是通过配置自定义 Suricata 规则来完成的。 例如,您可以配置网络防火墙以防范恶意软件攻击。 更进一步,您可以部署另一项托管服务,即 AWS Shield Advanced,以防御 DDoS 威胁。
保护您创建的资源
当您在 AWS 云中创建资源时,必须考虑如何根据当前的最佳实践保护这些资源。如果您部署 EC2 实例、数据库或无服务器资源,则情况确实如此。在本节中,我们将提供一些基本步骤来保护您创建的资源。
亚马逊 EC2 安全
在 AWS 中创建资源时,应注意遵循针对所用资源类型推荐的安全最佳实践。对于 EC2 实例,安全性从控制对实例的网络访问开始,例如,通过配置 VPC 和安全组。(有关更多信息,请参阅 “保护您构建的基础设施” 部分中的 “Amazon VPC 安全”。)
实例安全的另一个方面是管理用于连接您的实例的证书。这从您分配的 IAM 用户权限开始,但扩展到分配的群组。这为使用 EC2 实例的用户提供了一定程度的安全性,但不能为实例本身提供安全级别。您还应配置附加到实例的 IAM 角色以及与这些角色相关的权限。要访问 EC2 实例,您应该使用 EC 2 实例连接,而不是为 SSH 开放端口,也不要设置堡垒/跳跃主机。
您应确保部署到实例的客户机操作系统和软件均为最新操作系统更新和安全补丁。 有关更多详细信息,请访问亚马逊 EC2 中的安全。
数据库安全
保护数据库是安全方法的一个重要方面。正如 Amazon VPC 安全部分所述,建议将数据库部署到私有子网,以防止外部各方通过互联网访问。AWS 提供 15 个专门构建的数据库。两者的安全性各不相同,但都具有以下共同点。
身份验证
要访问数据库,需要某种形式的身份验证。这可以采用用户名和密码的形式,应定期轮换。或者,您可以使用 A mazon RDS 代理来利用 IAM 角色为您管理对数据库的访问权限。一些数据库服务,例如 A mazon DynamoDB,使用 IAM 角色来提供访问权限,因此您无需自己管理任何证书。
基于控制台的 SSH 访问
SSH 是管理 EC2 实例的最常用方法之一,Amazon EC2 实例连接允许您使用 SSH 直接在控制台中使用一次性 SSH 密钥连接到 EC2 实例。以下文章详细介绍了如何启用 Amazon EC2 实例连接,并解释了典型的使用案例。您还可以在创建 EC2 实例时生成 SSH 密钥,将其下载到本地,然后使用它们连接到您的实例。但是,这意味着您必须保护这些密钥,确保它们存储在您不会失去访问权限的地方,并且只能从下载了这些密钥的计算机上连接到您的实例。EC2 Instance Connect 以简单易用的方式,从控制台跨计算机安全地提供相同的 SSH 访问。
最低权限
建议的最佳做法是将对数据库的访问权限限制为仅限需要访问权限的服务和基础架构。这可以通过为您的 RDS 实例、亚马逊海王星数据库或 Amazon R ed sh ift 集群设置安全组来完成。
备份和测试恢复
备份数据并经常进行恢复以确认备份是否正常运行应该是当务之急。借助 AWS Backup,您可以轻松配置和管理特定 AWS 服务的备份,包括亚马逊 RDS、DynamoDB、海王星等。
无服务器安全
概览
为了确保无服务器安全,您应该熟悉 AWS Lambda 、亚马逊 API Gateway、亚马逊 DynamoDB、亚马逊 SQS 以及 IAM。在无服务器安全方面,与责任分担模式相比,AWS承担了更大的责任,但客户仍有责任注意。在无服务器环境中,AWS 管理基础设施、计算、执行环境和运行时语言。客户负责客户功能代码和库、资源配置以及身份和访问管理,如图所示。
在以下各节中,我们将详细介绍客户应负责的安全措施。有关更多详细信息,请参阅 AWS Lambda 中的安全性。
客户函数代码和库
AWS Lambda 提供的运行时可以在基于亚马逊 Linux 的执行环境中运行您的函数代码。但是,如果您在函数中使用其他库,则应负责更新库。确保您的库处于最新状态有助于保持您的安全状态。
资源配置
AWS Lambda 集成了多个 AWS 资源,例如亚马逊 DynamoDB、亚马逊 EventBridge 和亚马逊简单通知服务 (Amazon SNS)。对用作职能一部分的每项服务遵循推荐的安全措施将有助于加强您的安全态势。每项服务的文档都提供了额外的指导。
身份和访问管理
执行 Lambda 函数可能需要特定的 IAM 权限和角色。更多详细信息可以在 AWS Lambda 开发人员指南的权限部分中找到。
清单和配置
您的安全策略还应包括监控、日志记录和配置管理。例如,许多组织允许使用 TACACS+ 协议、RADIUS 或 Active Directory 日志对其设备进行记账。这有助于确保为所有管理活动创建审计记录。在 AWS 云中,这可以通过 AWS CloudTrail 来完成。CloudTrail 通过跟踪用户活动和 API 使用,支持审计、安全监控和操作故障排除。AWS 无服务器应用程序存储库与 AWS CloudTrail 集成,使开发人员和企业可以轻松地在 AWS 云中快速查找、部署和发布无服务器应用程序。有关更多详细信息,请参阅 AWS 无服务器应用程序存储库开发人员指南。
您仍然需要在某种程度上为您的无服务器环境提供 DoS 和基础设施保护,这可以通过使用 AWS Shield 和 AWS Shield Advanced 来实现。“监控您的环境” 部分将详细讨论监控和检测威胁。
保护您的数据
客户在 AWS 云中存储了大量数据。这些数据包含对组织运作至关重要的信息。它包括客户数据、知识产权、与收入直接相关的订单等。在本节中,我们将分享有关如何配置存储在 AWS 上的数据以及通过网络传入和传出 AWS 的数据的基本信息。
Amazon S3 安全
在 AWS 上,数据存储在 Amazon S3 中,它有多种控制措施可以保护数据。《保护 Amazon S3 中数据的十大安全最佳实践》一文涵盖了最基本的技术。其中包括在组织级别封锁公有 S3 存储桶、使用存储桶策略来验证授予的所有访问权限是受限制的和特定的,以及加密和保护数据。
加密静态数据
在加密方面,AWS 密钥管理服务 (AWS KMS) 允许您创建和控制用于加密或对数据进行数字签名的密钥。如果您想在 AWS 上加密数据,则有几种选择。第一种是使用服务器端加密和亚马逊 S3 管理的加密密钥 (SSE-S3)。使用这种方法,在使用由 AWS 管理的密钥将数据发送到 AWS 后进行加密。
第二种选择是在数据存入 AWS 后对其进行加密,但您可以使用存储在 AWS KMS (SS E-KMS) 中的客户主密钥 (CMK) 执行服务器端加密,而不是使用由 AWS 创建和管理的密钥。
在 AWS 上存储加密数据的第三种选择是使用客户端加密。使用这种方法,数据在传输到 AWS 之前会被加密。
从图中可以看到客户端加密和服务器端加密如何使客户受益的示例。
虚拟专用网络 (VPN)
VPN 可以包含多种技术。VPN 背后的理念是,您的传输数据可以保持其完整性,并且可以在双方之间安全地交换。AWS 提供多种技术,有助于确保您的传输数据安全。其中之一是 AWS PrivateLink,它在 VPC、AWS 服务和您的本地网络之间提供加密的私有连接。这样做不会将您的流量暴露在公共互联网上。这也可以被视为虚拟专用网络。
但是,在大多数情况下,对VPN的讨论围绕着数据加密的使用。视情况而定,您可能需要在客户端和您的 AWS 云资源之间提供加密。这种情况需要 AWS 客户端 VPN 。另一方面,您可能会在数据中心或分支机构与 AWS 资源之间传递数据。您可以使用本地资源与我们的亚马逊 VPC 或 AWS Transit 网关之间的 IPsec 隧道来实现此目的。这种安全连接被称为点对点 VPN 。
最后,使用 AWS 管理控制台管理您的云资源还提供加密的传输数据。虽然您通常不会将与控制台的连接称为 VPN,但您的会话使用 TLS(传输层安全)加密。因此,在构建安全架构时,您的配置是保密的。TLS 还与 AWS API 一起使用。
监控您的环境
在上述每个方面都得到保障的情况下,监控环境中发生的事情至关重要。这将有助于识别威胁并提供主动缓解威胁的能力。
交通流的可见性
AWS 提供多种托管服务以协助监控您的环境,并提供自助服务选项。例如,您可以使用 VPC 流量日志来记录和查看网络流量,也可以使用 Amazon CloudWatch 分析 AWS WAF 日志,甚至为 EC2 实例创建警报。 您可以在本次研讨会中了解有关亚马逊 CloudWatch 的更多信息。
账户活动的可见性
此外,AWS CloudTrail 监控和记录您的 AWS 基础设施中的账户活动,使您可以控制存储、分析和补救行动。这对于创建管理审计跟踪、识别安全事件和排除操作问题至关重要。
检测威胁
最后,Amazon GuardDut y 可用于威胁检测,甚至可以更进一步,让已发布的调查结果在您的 AWS 环境中启动自动修复操作。
通过解决这些操作领域中的每一个问题,您就可以为云环境建立基本的安全功能。
找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量