安全性
责任共担模式
在本课程中,您已经了解了可以在 AWS 云中创建的各种资源。这些资源包括 Amazon EC2 实例、Amazon S3 存储桶和 Amazon RDS 数据库。谁负责保护这些资源的安全:您(客户)还是 AWS?
答案是二者共同负责。因为您不应将 AWS 环境视为单个对象,而是将它视为建立在彼此基础之上的部分的集合。AWS 负责环境的某些部分,而您(客户)则负责其他部分。这一概念称为
责任共担模式分为客户责任(通常称为“云中的安全性”)和 AWS 责任(通常称为“云的安全性”)。
这种模式类似于房主和建筑商之间的责任分工。建筑商 (AWS) 负责建造房屋并确保房屋结构的牢固性。作为房主(客户),您负责确保关门和锁门,从而保护屋内所有物品的安全。
客户-云中的安全性
客户负责确保他们创建并放入 AWS 云中的所有内容的安全性。
使用 AWS 服务时,您(客户)将保持对您的内容的完全控制。您负责管理内容的安全性要求,包括您选择在 AWS 上存储哪些内容、您使用哪些 AWS 服务以及谁有权访问该内容。您还可以控制如何授予、管理和撤销访问权限。
您采取的安全措施取决于您使用的服务、您系统的复杂程度以及您公司的具体运营和安全性需求等因素。措施包括选择、配置和修补将在 Amazon EC2 实例上运行的操作系统、配置安全组和管理用户账户。
AWS 云的安全性
AWS 负责云的安全性。
AWS 在基础设施的各个层上运行、管理和控制各种组件。这包括主机操作系统、虚拟化层,甚至是服务运行所在的数据中心的物理安全性等领域。
AWS 负责保护用于运行 AWS 云中提供的各项服务的全球基础设施。该基础设施包括 AWS 区域、可用区和边缘站点。
AWS 管理云的安全性,尤其是托管您资源的物理基础设施的安全性,其中包括:
-
数据中心的物理安全性
-
硬件和软件基础设施
-
网络基础设施
-
虚拟化基础设施
虽然您无法造访 AWS 数据中心来亲眼目睹这种保护,但 AWS 提供一些来自第三方审计机构的报告。经过这些审计机构的验证,AWS 符合各种计算机安全性标准和法规。
用户权限和访问
AWS Identity and Access Management (IAM)
IAM 使您能够根据公司的具体运营和安全性需求灵活配置访问权限。您可以使用 IAM 功能的组合来实现这一点,本节课将详细介绍这些功能:
-
IAM 用户、组和角色
-
IAM 策略
-
多重验证
您还将了解每项功能的最佳实践。
AWS 账户根用户
首次创建 AWS 账户时,首先要创建
要访问根用户,您需要使用自己用于创建 AWS 账户的电子邮件地址和密码登录。根用户类似于咖啡店店主。它对账户中的所有 AWS 服务和资源具有完全访问权限。
最佳实践:
请不要将根用户用于日常任务。
而是要使用根用户来创建您的第一个 IAM 用户,并为其分配权限来创建其他用户。
然后,继续创建其他 IAM 用户,并使用这些用户在 AWS 中执行常规任务。仅当您需要执行只有根用户才能执行的有限数量的任务时,才使用根用户。这类任务的示例包括更改根用户电子邮件地址和更改 AWS Support 计划。
IAM 用户
IAM 用户是您在 AWS 中创建的身份。它代表与 AWS 服务和资源交互的人员或应用程序。它由名称和凭证组成。
默认情况下,在 AWS 中创建新 IAM 用户时,该用户没有任何与之关联的权限。要让 IAM 用户能够在 AWS 中执行特定操作(例如启动 Amazon EC2 实例或创建 Amazon S3 存储桶),您必须向 IAM 用户授予必要的权限。
最佳实践:
我们建议您为需要访问 AWS 的每个人创建单独的 IAM 用户。
即使您的多位员工需要相同级别的访问权限,您也应该为每位员工创建单独的 IAM 用户。这样做能够让每个 IAM 用户拥有一组唯一的安全凭证,从而增强安全性。
IAM 策略
IAM 策略是一个文档,用于授予或拒绝对 AWS 服务和资源的权限。
IAM 策略使您能够自定义用户对资源的访问级别。例如,您可以允许用户访问 AWS 账户中的所有 Amazon S3 存储桶,也可以仅允许用户访问特定存储桶。
最佳实践:
在授予权限时,请遵循最低权限安全原则。
通过遵循这一原则,您可以防止用户或角色拥有的权限超出执行任务所需的权限范围。
例如,如果员工只需要访问特定存储桶,请在 IAM 策略中指定该存储桶。执行此操作,而不是授予员工对 AWS 账户中所有存储桶的访问权限。
示例:IAM 策略
下面是 IAM 策略的工作原理示例。假设咖啡店店主需要为新聘用的收银员创建一个 IAM 用户。收银员需要访问存储在 Amazon S3 存储桶(ID:AWSDOC-EXAMPLE-BUCKET)中的收据。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:ListObject",
"Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET"
}
}
在本示例中,IAM 策略允许在 Amazon S3 中执行特定操作:ListObject。该策略还提到了一个特定的存储桶 ID:AWSDOC-EXAMPLE-BUCKET。当咖啡店店主将此策略附加到收银员的 IAM 用户后,收银员就可以查看 AWSDOC-AMPLE-BARD 存储桶中的所有对象。
如果咖啡店店主希望收银员能够访问其他服务并在 AWS 中执行其他操作,则咖啡店店主必须附加其他策略来指定这些服务和操作。
现在,假设咖啡店又聘请了几位收银员。咖啡店店主可以将用户放入
IAM 组
IAM 组是 IAM 用户的集合。当您为某个组分配 IAM 策略时,该组内的所有用户都会获得该策略指定的权限。
下面的示例说明了这项功能在咖啡店中的应用。咖啡店店主可以创建“收银员”IAM 组,而不是逐一为收银员分配权限。然后,店主可以将 IAM 用户添加到该组中,在组级别附加权限。
在组级别分配 IAM 策略还可以让您在员工转到其他工作岗位时更轻松地调整权限。例如,如果收银员成为库存专员,咖啡店店主可以将其从“收银员”IAM 组中删除,然后将其添加到“库存专员”IAM 组中。这可以确保员工只具有他们当前角色所需的权限。
如果咖啡店员工不是永久性更换工作岗位,而是在一天中轮换到不同的工作区,该怎么办?员工可以通过
IAM 角色
一名咖啡店员工在一天中需要轮换到不同的工作区。根据咖啡店的人员配备情况,该员工可能会履行多项职责:收银、更新库存系统、处理在线订单等。
当员工需要切换到其他任务时,他们将放弃对一个工作区的访问权限,并获得对下一个工作区的访问权限。员工可以轻松地在工作区之间切换,但在任何给定的时间点,他们只能访问单个工作区。同样的概念也适用于 AWS 中的 IAM 角色。
IAM 角色是一种身份,您可以通过担任这种身份来获得临时权限。
您必须先对 IAM 用户、应用程序或服务授予切换到 IAM 角色的权限,然后它们才能使用该角色。当某人担任某个 IAM 角色时,他们会放弃在先前角色下拥有的所有权限,并获得新角色的权限。
最佳实践:
IAM 角色非常适合用于需要临时授予(而不是长期授予)对服务或资源的访问权限的情况。
示例:IAM 角色
-
首先,店主授予员工切换到咖啡店中每个工作区角色的权限。
-
员工一天的工作从担任“收银员”角色开始。这使他们能够访问收银系统。
-
当天晚些时候,员工需要更新库存系统。他们可以担任“库存”角色。
这将授予员工访问库存系统的权限,同时撤消他们访问收银系统的权限。
多重验证
您有没有在登录网站时遇到过要求您提供各种信息来验证您的身份的情况?您可能需要提供密码,然后提供第二种形式的身份验证,例如发送到手机的随机验证码。这就是
在 IAM 中,多重验证 (MFA) 可以为您的 AWS 账户提供额外一层安全保护。
多重验证的工作原理
-
当用户登录 AWS 网站时,他们首先要输入自己的 IAM 用户 ID 和密码。
-
接着,系统会提示用户使用他们的 AWS MFA 设备接收身份验证响应。此设备可以是硬件安全密钥、硬件设备或智能手机等设备上的 MFA 应用程序。
-
当用户成功通过身份验证后,他们就能访问请求的 AWS 服务或资源。
您可以为根用户和 IAM 用户启用 MFA。最佳做法是为账户中的根用户和所有 IAM 用户启用 MFA。这样做,您可以保护您的 AWS 账户免受未经授权的访问。
AWS Organizations
假设您的公司拥有多个 AWS 账户。您可以使用 在一个中心位置整合和管理多个 AWS 账户。
当您创建组织时,AWS Organizations 会自动创建根,根是组织中所有账户的父容器。
在 AWS Organizations 中,您可以使用
组织单位
在 AWS Organizations 中,您可以将账户分组到组织单位 (OU) 中,以便更轻松地管理具有类似业务或安全性要求的账户。将策略应用于 OU 时,OU 中的所有账户都会自动继承策略中指定的权限。
通过将各个单独的账户组织到 OU 中,您可以更轻松地隔离具有特定安全性要求的工作负载或应用程序。例如,如果您公司的一些账户只能访问满足特定法规要求的 AWS 服务,您可以将这些账户放入一个 OU 中。然后,您可以将策略附加到该 OU,阻止其中的账户访问所有其他不符合法规要求的 AWS 服务。
示例:AWS Organizations
假设您的公司针对财务、信息技术 (IT)、人力资源 (HR) 和法务部门分别创建了单独的 AWS 账户。您决定将这些账户整合到单个组织中,以便从一个中心位置管理它们。创建组织时,您将创建根。
在设计组织时,您需要考虑每个部门的业务、安全性和法规需求。您可以利用这些信息来决定将哪些部门放入一个 OU 中。
财务部门和 IT 部门的要求与其他任何部门的要求都不重叠。您可以将这些账户放入您的组织中,以便利用整合账单等优势,但不要将它们放入任何 OU 中。
人力资源部门和法务部门需要访问相同的 AWS 服务和资源,因此您可以将它们放入一个 OU 中。将它们放入一个 OU 中后,您可以附加同时适用于人力资源部门和法务部门的 AWS 账户的策略。
即使您已经将这些账户放入 OU 中,您仍然可以通过 IAM 继续为用户、组和角色提供访问权限。
通过将账户分组到 OU 中,您可以更轻松地为它们提供访问所需服务和资源的权限。您还可以阻止他们访问不需要的任何服务或资源。
合规性
AWS Artifact
根据您的公司所属的行业,您可能需要遵守特定标准。而审计或检查可以确保公司符合这些标准。
AWS Artifact Agreements
假设您的公司需要就在 AWS 服务中使用某些类型的信息与 AWS 签订相关协议。您可以通过 AWS Artifact Agreements 实现这一点。
在 AWS Artifact Agreements 中,您可以查看、接受和管理单个账户以及 AWS Organizations 中所有账户的协议。它提供各种类型的协议,可以满足受特定法规(例如健康保险流通与责任法案 [HIPAA])约束的客户的需求。
AWS Artifact Reports
接下来,假设您公司开发团队的一名成员正在构建应用程序,需要更多有关他们在遵守特定法规标准方面的责任的信息。您可以建议他们在 AWS Artifact Reports 中获取这些信息。
AWS Artifact Reports 可以提供来自第三方审计机构的合规性报告。经过这些审计机构的测试和验证,AWS 符合各种全球性、区域性和特定于行业的安全性标准和法规。AWS Artifact Reports 与发布的最新报告保持同步。您可以向审计机构或监管机构提供 AWS 审计构件,作为 AWS 安全控制的证据。
以下是 AWS Artifact 中提供的一些合规性报告和法规。每份报告都包含相关内容说明以及报告有效期。
客户合规中心
在客户合规中心,您可以阅读客户合规性案例,了解受管制行业中的公司如何解决各种合规性、监管和审计难题。
您还可以查看关于以下主题的合规性白皮书和文档:
-
AWS 对关键合规性问题的解答
-
AWS 风险与合规性概览
-
审计安全性清单
此外,客户合规中心还包含审计员学习路径。此学习路径专为担任审计、合规和法律职务的人员而设计,可以帮助他们详细了解如何使用 AWS 云展示内部运营工作的合规性。
拒绝服务攻击
顾客可以通过致电咖啡店来下单。接听每个电话后,收银员接受订单并将订单交给咖啡师。
但是,假设一个恶作剧者多次打电话下单,但从来没有取过咖啡。这会导致收银员无法接听其他顾客打来的电话。咖啡店可以通过屏蔽恶作剧者使用的电话号码来尝试阻止虚假请求。
在这个场景中,恶作剧者的行为类似于拒绝服务攻击。
拒绝服务 (DoS) 攻击是指蓄意让用户无法使用某个网站或应用程序
例如,攻击者可能会将过多的网络流量引入网站或应用程序,直到目标网站或应用程序过载,无法再做出响应。如果网站或应用程序不可用,则会拒绝向尝试提出合法请求的用户提供服务。
分布式拒绝服务攻击
现在,假设恶作剧者获得了朋友的帮助。
恶作剧者及其朋友反复给咖啡店打电话,请求下单,但从未打算来取咖啡。这些请求来自不同的电话号码,咖啡店不可能将这些电话号码全部屏蔽。此外,大量涌入的来电使得顾客越来越难以打通电话。这类似于分布式拒绝服务攻击。
在分布式拒绝服务 (DDoS) 攻击中,攻击者使用多个来源发起攻击,旨在使网站或应用程序不可用。攻击可能来自一组攻击者,甚至可能来自一个攻击者。一个攻击者可以使用多台受感染的计算机(也称为“机器人”)向网站或应用程序发送过多流量。
为了最大限度地减少 DoS 和 DDoS 攻击对应用程序产生的影响,您可以使用
AWS Shield
AWS Shield 是一项服务,用于保护应用程序免受 DDoS 攻击。AWS Shield 提供两种级别的防护:标准和高级。
AWS Shield Standard
AWS Shield Standard 是一项免费服务,可以自动保护所有 AWS 客户。它可以保护您的 AWS 资源免受频繁发生的最常见的 DDoS 攻击。
当网络流量进入您的应用程序时,AWS Shield Standard 会使用各种分析技术,来实时检测恶意流量并自动阻延恶意流量。
AWS Shield Advanced
AWS Shield Advanced 是一项付费服务,不仅可以提供详细的攻击诊断,还能检测和缓解复杂的 DDoS 攻击。
它还可以与其他服务(例如 Amazon CloudFront、Amazon Route 53 和 Elastic Load Balancing)集成。此外,您可以通过编写自定义规则,将 AWS Shield 与 AWS WAF 集成,从而帮助缓解复杂的 DDoS 攻击。
其他安全服务
AWS Key Management Service (AWS KMS)
咖啡店有许多物品,例如咖啡机、糕点、收银机中的现金等等。您可以将这些物品当作数据。咖啡店店主希望确保所有这些物品都是安全的,无论它们是位于储藏室还是在咖啡店内各个位置间移动。
同样,您必须确保应用程序的数据安全,无论它们是处于存储状态(静态加密),还是在传输过程中(称为传输中加密)。
使用 AWS KMS,您可以为密钥选择所需的特定访问控制级别。例如,您可以指定哪些 IAM 用户和角色能够管理密钥。或者,您可以临时禁用密钥,让任何人都无法再使用密钥。您的密钥将一直位于 AWS KMS 中,而且您始终对其具有控制权。
AWS WAF
AWS WAF 可以与 Amazon CloudFront 和 Application Load Balancer 配合使用。回想一下您在前面的模块中了解的网络访问控制列表。AWS WAF 的工作方式类似于阻止或允许流量。但是,它实现这一点的方法是使用
下面是使用 AWS WAF 来允许和阻止特定请求的示例。
假设您的应用程序一直收到来自多个 IP 地址的恶意网络请求。您希望阻止这些请求继续访问您的应用程序,但您还希望确保合法用户仍然可以访问它。您可以配置 Web ACL,使其允许来自除您指定的 IP 地址以外的所有请求。
当请求进入 AWS WAF 时,AWS WAF 会根据您在 Web ACL 中配置的规则列表进行检查。如果请求不是来自被阻止的 IP 地址之一,则允许访问该应用程序。
但是,如果请求来自您在 Web ACL 中指定的被阻止的 IP 地址之一,则拒绝访问。
Amazon Inspector
假设咖啡店的开发人员正在开发和测试一款新的订购应用程序。他们希望确保根据安全性最佳实践设计应用程序。但是,他们还有其他几个应用程序需要开发,因此没有太多时间进行手动评估。为了执行自动化安全性评估,他们决定使用
Amazon Inspector 可以运行自动化安全性评估,从而帮助提高应用程序的安全性与合规性。它检查应用程序的安全漏洞以及不符合安全性最佳实践的地方,例如对 Amazon EC2 实例进行开放访问和安装易受攻击的软件版本。
执行评估后,Amazon Inspector 会为您提供一个安全检测结果列表。该列表按严重性级别排定优先级,包括每个安全问题的详细描述以及有关如何修复该问题的建议。但是,AWS 不保证遵循提供的建议可以解决所有潜在的安全问题。在责任共担模式下,客户负责他们在 AWS 服务上运行的应用程序、流程和工具的安全性。
Amazon GuardDuty
在您为 AWS 账户启用 GuardDuty 后,GuardDuty 便会开始监控您的网络和账户活动。您无需部署或管理任何其他安全软件。然后,GuardDuty 会持续分析来自多个 AWS 源的数据,包括 VPC 流日志和 DNS 日志。
如果 GuardDuty 检测到任何威胁,您可以从 AWS 管理控制台查看有关这些威胁的详细检测结果。检测结果包括建议的修复措施。您还可以配置 AWS Lambda 函数,以便根据 GuardDuty 的安全检测结果自动执行修复措施。
其他资源
要详细了解安全性模块中探讨的概念,请查看以下资源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)