Week 4: Security

haha

Shared Responsibility Model 共同责任模型

AWS负责云的安全(of),客户负责云中的安全(in)。

  1. 共同责任模型:共同责任模型意味着在安全方面,AWS和客户都有责任。

  2. AWS的责任:云基础设施的安全

    • AWS负责数据中心的物理安全,包括基础设施如铁、混凝土、围栏和安全警卫。
    • AWS确保底层网络和超级管理程序技术的安全,确保它们防篡改和稳健。
    • AWS接受第三方审计,以验证其安全实践,并提供客户安全合规要求的文档。
  3. 客户的责任:操作系统、应用和数据的安全

    • 客户可以控制运行在AWS服务如EC2(弹性计算云)上的操作系统。
    • 客户负责保护操作系统,包括补丁管理。
    • 客户完全掌控在AWS上运行的应用程序,负责其维护和安全性。
    • 数据安全主要由客户负责。AWS提供加密和访问控制工具。

用户权限和访问

Principle of least privilege: A user is granted access only to what they need.

  1. AWS Identity and Access Management (IAM): IAM是用于安全管理对AWS服务和资源的访问的工具,可根据公司的运营和安全需求进行配置。

  2. AWS账户根用户:

    • root用户是AWS账户的所有者,具有完全的访问权限。
    • 不建议经常使用根用户,最好用来创建其他IAM用户并授权权限。
  3. IAM用户:

    • IAM用户是由名称和凭证组成的身份,代表与AWS服务和资源交互的人员或应用程序。
    • 默认情况下,IAM用户没有与之关联的权限,需要显式授权。
  4. IAM策略:

    • IAM策略是定义对AWS服务和资源的权限的文档。
    • 可以通过IAM策略自定义用户对资源的访问级别,建议遵循最小权限原则。
  5. IAM组:

    • IAM组是一组IAM用户的集合,可以向组分配IAM策略。
    • 组级别的权限分配可帮助更轻松地管理用户权限。
  6. IAM角色:

    • IAM角色是用于临时授予访问权限的身份,适用于需要临时授予服务或资源访问权限而不是长期授权的情况。
  7. 多因素认证 Multi-factor Authentication(MFA):

    • MFA提供额外的安全层,要求用户提供多个身份验证因素来验证其身份,以增强安全性。

AWS Organizations

  • 为何需要AWS组织机构:

    • 随着公司的增长和云服务的采用,需要分离不同的职责和资源。
    • AWS Organizations是一项服务,用于管理多个AWS账户,帮助组织更好地管理账户,控制成本,确保合规性,实施安全性,并共享资源。
  • 主要功能:

    1. 中央管理: 可以将多个AWS账户集中管理,建立组织结构。
    2. 账单合并: 使用主账户合并和支付所有成员账户的费用,还可获得批量折扣。Consolidated billing
    3. 分层组织: 可以将账户分组成组织单位(OUs),以满足安全、合规或预算需求。Organizational Units
    4. 服务控制策略: 可以使用服务控制策略(SCPs)限制成员账户的AWS服务、资源和API权限。
  • Even though you have placed these accounts into OUs, you can continue to provide access for users, groups, and roles through IAM.

IAM policies & SCPs

  • In AWS Organizations, you can apply service control policies (SCPs) to the organization root, an individual member account, or an OU. An SCP affects all IAM users, groups, and roles within an account, including the AWS account root user. You can apply IAM policies to IAM users, groups, or roles. You cannot apply an IAM policy to the AWS account root user.

在AWS Organizations中,服务控制策略(SCP)可以应用于组织根、单个成员账户或组织单位(OU),影响账户内的所有IAM用户、组和角色,但不能应用于AWS账户的根用户。与之不同的是,IAM策略是应用于IAM用户、组或角色的权限策略,用于定义其对AWS资源的访问权限和操作权限。根用户的权限主要由SCP管理,而IAM用户、组和角色的权限由IAM策略管理。这有助于实现权限控制和安全管理。

AWS Artifact

  • 合规性需求: 根据公司所属行业,可能需要满足特定标准和法规以确保信息安全。

  • 审计和检查: 审计和检查用于验证公司是否满足必要的合规性要求。

  • AWS Artifact 包括两个部分: AWS Artifact 包括 AWS Artifact 协议和 AWS Artifact 报告两个主要部分。

    • AWS Artifact 协议: 允许公司与 AWS 签订有关在 AWS 服务中使用特定信息的协议。适用于单个帐户和 AWS 组织中的所有帐户。

    • AWS Artifact 报告: 提供来自第三方审计员的合规性报告,证明 AWS 符合全球、区域和行业安全标准和法规。

  • 开发人员资源: 对于开发人员,AWS Artifact 报告提供了关于合规性责任的信息,特别是在构建应用程序时。

  • 审计和监管证据: 公司可以向审计员和监管机构提供 AWS Artifact 报告,作为 AWS 安全控制和合规性的证据。

  • 多样的合规性报告: AWS Artifact 包含多种与不同法规相关的合规性报告。

Denial-of-Service Attacks (DDoS)

The objective of a DDoS attack is to shut down your application’s ability to function by overwhelming the system to the point it can no longer operate.

DDoS攻击旨在通过超载系统来关闭应用程序。攻击者使用多台计算机来发动攻击。AWS提供了多种防御措施,包括安全组UDP floods or reflection attacks、弹性负载均衡器Slowloris attacksAWS Shield with AWS WAFHTTP level attacks,可帮助您保护系统免受DDoS攻击。良好的架构可以提供基本的防御,而AWS Shield Advanced则提供了更高级的保护。

良好的架构可以提供基本的防御:

一个经过良好设计的系统架构本身具备基本的安全防御能力。

比如,如果应用程序架构合理,包括网络安全措施、访问控制、数据加密等,那么它可能会防止一些常见的网络攻击,例如:

  1. SQL注入攻击: 良好的架构可以使用参数化查询等技术来预防SQL注入攻击,确保用户输入不会被误解为恶意SQL命令。

  2. 跨站脚本攻击(XSS): 安全的前端设计和输入验证可以减少XSS攻击的风险,防止恶意脚本在用户浏览器上执行。

  3. 跨站请求伪造攻击(CSRF): 使用安全令牌和合适的验证机制可以有效地防止CSRF攻击。

  4. 未经授权的访问: 适当的身份验证和授权机制可以确保只有经过授权的用户能够访问敏感数据或功能。

  5. 敏感数据泄露: 数据加密、访问控制和数据保护策略可以保护敏感数据免受未经授权访问或泄露。

这些都是良好架构的一部分,可以提供基本的防御,但仍然需要考虑其他高级安全措施,以应对更复杂和有针对性的攻击。AWS Shield Advanced等服务可以提供额外的安全性,以应对分布式拒绝服务(DDoS)等高级威胁。

AWS Shield with AWS WAF

是 AWS 提供的网络安全解决方案,用于保护应用程序和网络资源:

  • AWS Shield: 防范 DDoS 攻击的服务。

    • Shield Standard: 包含在基本支持计划中,提供基本 DDoS 保护。
    • Shield Advanced: 付费服务,提供高级 DDoS 防护和实时攻击监控。
  • AWS WAF(Web Application Firewall): 用于保护 Web 应用程序,防范 Web 攻击。

    • 检测和拦截常见 Web 攻击,如 XSS、SQL 注入等。
    • 使用规则和策略阻止潜在恶意流量。

Additional Security Services

数据安全和AWS的安全服务

  • 数据加密Encryption 数据加密是一种保护数据安全的方法,分为两种类型:

    • 静止时at rest的加密: 当数据处于空闲状态并存储时,例如在DynamoDB表上启用的服务器端静止加密,可防止未经授权的访问。DynamoDB的静止时加密还与AWS KMS(密钥管理服务)集成,用于管理用于加密表的加密密钥。
    • 传输时in transit的加密: 当数据在两个点之间传输时,AWS使用SSL连接来加密数据,并可以使用服务证书来验证和授权客户端。此功能存在于众多AWS服务中,如SQS、S3、RDS等。
  • Amazon Inspector: 是一项自动化安全评估服务,用于检查安全最佳实践的偏差、EC2实例的暴露和漏洞。它提供详细的安全问题说明和修复建议。

  • Amazon GuardDuty: 是一项威胁检测服务,它分析生成的持续元数据流,包括AWS CloudTrail事件、Amazon VPC流量日志和DNS日志。它使用已知的恶意IP地址、异常检测和机器学习等集成威胁情报来更准确地识别威胁。GuardDuty运行独立于其他AWS服务,不会影响现有基础架构和工作负载的性能和可用性。

这些AWS安全服务帮助确保数据和应用程序的安全性,提供了静止时和传输时的数据保护,同时进行安全评估和威胁检测。

AWS KMS: Key Management Service

  • 用于执行加密和解密操作。
  • 加密密钥是一串随机数字,用于加锁(加密)和解锁(解密)数据。
  • 允许创建、管理和使用加密密钥,并可控制密钥在各种服务和应用程序中的使用。
  • 可以选择特定的访问控制级别来管理密钥,包括指定哪些IAM用户和角色可以管理密钥。
  • 还可以临时禁用密钥,以确保它们不再被使用,密钥始终保留在AWS KMS中,可控。

AWS WAF: web application firewall

  • 是Web应用程序防火墙,用于监视网络请求进入Web应用程序。
  • 它与Amazon CloudFront和应用程序负载均衡器一起工作。
  • 使用Web访问控制列表(ACL)来阻止或允许流量,保护AWS资源。