亚马逊---设计安全架构

时间:2024-04-29 11:38:38

会从以下三个方面展开:

        1、AWS资源访问安全

        2、应用程序负载的网络安全

        3、云中数据的安全

责任共担模式

就像租房子(房东和你的责任)

AWS资源访问安全

        需要掌握以下几点:

                1、跨多个账户的访问控制和管理

                2、AWS联合访问和身份服务(例如,AWS IAM、AWS IAM Identity Center)

                3、AWS全球基础设施(例如,可用区、AWS区域)

                4、AWS安全最佳实践(例如,最低权限原则)

                5、AWS责任共担模式

将AWS安全最佳实践应用于IAM用户和根用户 (例如,多重验证(MFA))

设计包含IAM用户、组、角色和策略的灵活授权模型

设计基于角色的访问控制策略(例如,AWS STS、角色切换、跨账户访问)

为多个AWS账户设计安全策略(例如,AWS Control Tower、服务控制策略(SCP))

确定AWS服务的资源策略的正确用法

确定何时将Directory Service与IAM角色联合

IAM(身份和权限管理)

如何访问云

通过命令行或者SDK的api调用。

首先讲一下什么是SDK?

SDK是"软件开发工具包"的缩写,它是一组用于开发软件应用程序的工具、库、文档和示例代码的集合。SDK通常由软件开发公司或平台提供、旨在帮助开发者更轻松地构建应用程序,利用平台提供的功能和服务。

        SDK通常包括API(应用程序接口),这些接口允许开发者与特定平台或服务进行交互,执行特定的功能或访问特定的数据。SDK通常争对特定的操作系统、编程语言或开发环境。例如Android SDK用于开发Android应用程序, IOS SDK用于开发IOS应用程序等。

        我自己springboot常用的是Amazon AWS SDK。一句话,后端与前端的交互大多通过SDK的API打包。

IAM身份详细信息

主要区别在于权限的分发。不同用户的等级权限不一样。

用户组主要是批量的对统一权限用户的管理。目的是为了方便管理与协调。当其中用户付费或者认证之后,可移除并转入到更高权限的IAM组。

用户与角色

用户代表一种长久的身份,角色只是临时权限赋予的问题。

AWS安全凭证

角色的临时凭证

STS是secret token service

示例:跨账户使用IAM角色

示例:资源互访使用IAM角色

IAM 策略(实际上就是个文档)

IAM策略(四个elements)

EAR概念:   就是什么样的资源(resource)做什么样的操作(action)是允许(Effect)的。

比如对资源桶里的所有资源里的对象是允许操作的。

使用权限边界

服务控制策略(SCP)

服务控制策略(SCP)通常指的是操作系统中的一种安全策略或权限控制机制,用于管理系统中的服务(或进程)对资源的访问权限。SCP的主要目的是确保系统资源(如文件、网络端口、内存等)只被授权的服务或进程所访问,以增强系统的安全性和稳定性。

在不同的操作系统和环境中,SCP可能指代不同的概念或实现方式。以下是一些可能的解释:

  1. Windows Server Service Control Policy
    在Windows Server操作系统中,SCP可能指代一组安全策略或权限设置,用于管理服务(或服务账户)对系统资源的访问权限。这些策略可以通过本地安全策略或组策略对象(Group Policy Objects,GPO)进行配置,包括对服务账户的登录权限、服务所需的权限等。

  2. Linux Service Control Policies
    在Linux系统中,SCP可能指代一些控制服务运行的策略,比如通过Systemd、SysVinit或其他服务管理工具来限制服务的权限、资源使用等。这些策略可以通过配置文件或系统命令来实现,以确保服务运行的安全性和可靠性。

  3. Network Service Control Policies
    在网络环境中,SCP也可以指代一些用于控制网络服务访问权限的策略或技术,比如防火墙规则、访问控制列表(Access Control Lists,ACLs)、安全组等。这些策略可以在网络设备或操作系统中实现,用于限制服务对网络资源的访问。

IAM策略如何与SCP交互

我熟悉的SCP是。SCP(Secure Copy Protocol)作为一种网络协议。用于在本地系统和远程系统之间安全地传输文件。它建立在SSH(Secure Shell)协议之上,通过加密的方式传输数据,因此在传输过程中可以保证数据的安全性。

使用SCP可以在不同的计算机之间复制文件和目录,就像在本地系统中复制文件一样简单。通常,SCP命令的语法如下:

scp [选项] [源文件] [目标地址]

其中:

  • [选项]:用于指定一些额外的参数,比如设置传输的加密方式、设置端口号等。
  • [源文件]:表示要传输的文件或目录的路径。可以是本地文件或目录,也可以是远程文件或目录。
  • [目标地址]:表示文件或目录的目标地址,可以是本地地址或远程地址。如果是远程地址,通常使用的是SSH格式的地址,如 user@hostname:/path/to/destination

IAM Identity Center解决方案

IAM Identity Center本质上就是SSO。

SSO(Single Sign-On,单点登录)是一种身份验证机制,允许用户使用一组凭据(例如用户名和密码)登录到多个相关但独立的软件系统或应用程序中。通过SSO,用户只需要进行一次身份验证,然后就可以在整个系统集合中访问受保护的资源,而无需再次输入凭据。

SSO的工作原理(流程)通常如下:

        1、用户尝试访问受保护的资源或应用程序。

        2、如果用户尚未进行身份验证,系统将重定向用户到身份提供者(Identity Provider,IdP)进行认证。

        3、用户提供凭据进行身份验证(例如用户名和密码)

        4、身份提供者验证用户身份,并向用户颁发一个令牌(Token)。

        5、用户返回到原始的资源或应用程序,并将令牌交给它

        6、资源或应用程序验证令牌,并通过令牌中包含的信息来确定用户的身份和权限。

        7、用户被授予访问资源或应用程序的权限。

SSO的优点包括:

        1、用户友好性:用户只需要一次登录,即可访问所有相关的系统和应用程序,无需反复输入凭据,提高了用户的体验度。

        2、减少密码管理负担:用户只需要记住一个密码,而不是多个,简化了密码管理的复杂性。

        3、提高安全性:通过集中的身份提供者进行身份验证和授权,可以更好地管理用户身份和权限。

应用程序负载地网络安全

有以下重点:

应用程序配置和凭证安全

AWS服务终端节点

控制AWS上的端口、协议和网络流量

安全应用程序访问

具有合适使用案例的安全服务(例如, Amazon Cognito、Amazon GuardDuty、 Amazon Macie)

AWS外部的威胁向量(例如,DDoS、SQL注入)

设计带安全组件(例如,安全组、路由表、网络ACL、NAT网关)的VPC架构

确定网路分段策略(例如,使用公有子网和私有子网)

将AWS服务集成到安全应用程序(例如AWS Shield、AWS WAF、IAM Identity Center、 AWS Secrets Manager)

保护与AWS云的外部网络连接(例如VPN、AWS Direct Connect)

拓展一下,可能很多人不了解VPN是什么

VPN(virtual Private Network,虚拟专用网络)是一种通过公共网络(如互联网)建立安全连接的技术,用于在不安全的网络环境中创建一个私密且加密的通信管道,以实现数据传输的安全和隐私保护。

VPN的主要作用包括:

        1、加密通信:VPN通过使用加密技术(如SSL/TLS、IPSec等),对用户在公共网络上传输的数据进行加密。这样即使数据被截获,也难以解密和窃取其中的内容。

        2、隧道封装:VPN在公共网络上创建一条安全的通信隧道,将用户的数据包封装在隧道中传输。这样即便在传输过程中被黑客拦截。

        3、匿名访问:VPN通过将用户的网络流量路由到VPN服务器,隐藏用户的真实IP地址,并提供了一个虚拟的IP地址和地理位置。

        4、访问限制突破:VPN通过提供不同地区的服务器,使用户可以模拟其他地区的网络连接。用户可以连接到VPN服务器后,绕过地理限制,访问被*的内容或服务。

       

Amazon VPC和子网

VPC全称为virtual private cloud,虚拟私有域。就像买了一个房子,你可以规定哪个房间作为私有空间(私有子网),而客厅作为公有空间(公有子网)。

        其中私有子网的内容不需要直接与互联网通信,比如说数据库

互联网或远程访问

互联网能访问到需要有三个条件:

        1、公网的IP地址(你得在江湖上有名号啊)

        2、互联网的网关(类似于房子的门)

        3、公有子网的public route table(公共路由表),指在云计算平台(如AWS、Azure等)中用于管理公有子网的路由规则的表格。它定义了在公有子网中的数据流向的方式,决定了数据包应该如何被路由和传送。

公共路由表有以下内容:

        1、默认路由规则:默认路由规则决定了当数据包的目的地不在该子网内部时,应该将数据包发送到哪里。通常情况下,默认路由规则会将数据包发送到Internet Gateway(互联网网关),以便与外部网络通信。

        2、自定义路由规则:除了默认路由规则外,公有子网的公共路由表还可以包含自定义的路由规则,这些规则可以根据特定的需求进行配置,例如将特定目的地的数据包路由到特定的目标,或者通过网络地址转换(NAT)服务对数据包进行转换。

        3、路由优先级:路由表中的每条路由规则都具有优先级,决定了当有多条规则匹配同一个数据包时,应该采用哪一条规则进行路由。通常情况下,路由优先级由路由规则的顺序决定,先匹配的规则具有更高的优先级。

        4、目标地址范围:每条路由规则都指定了适用的目标地址范围,即该规则所匹配的数据包的目的地IP地址范围。

        5、下一跳信息:路由规则还包含了下一跳信息,指定了当数据包匹配该规则时应该时应该将其发送到哪个目标。下一跳可以是Internet Gateway、NAT网关、虚拟专用网关。

AWS Direct Connect

VPC的网络分层

路由表

网络访问控制列表

        ACL(Access Control List,访问控制列表)是一种用于控制网络设备或操作系统上资源访问权限的机制。它可以用于限制特定用户、程序或网络设备对资源的访问,以增强网络安全性并实现对网络流量的控制管理。作为一种安全机制,用来防止未经授权的访问和恶意攻击。

        在网络设备(如路由器、交换机等)中,ACL通常用于控制数据包的传输和转发。它可以根据预先定义的规则来决定允许或拒绝特定类型的流量通过设备。ACL规则通常基于源地址、目标地址、协议类型、端口号等条件进行匹配,从而对网络流量进行过滤和管理。

        在操作系统中,ACL通常用于控制对文件、目录或其他系统资源的访问权限。通过ACL,系统管理员可以为特定用户或用户组分配不同的权限,例如读取、写入、执行等,以实现对系统资源的精细化控制和管理。

安全组

安全组与网路访问控制列表的区别

示例:多层应用的安全组链

云中的安全威胁: DDos攻击(过载型攻击)

        跟打电话一样

shield standard和shield advanced提供两个服务进行防护。

AWS WAF如何运作

AWS Firewall Manager

Amazon GuardDuty

分层防御:以城堡来比喻

VPC对等连接

VPC之间互相通信

AWS PrivateLink和VPC终端节点

如果VPC比较多

AWS Transit Gateway

云中数据的安全

有以下几个知识点:

        1、数据访问与监管

        2、数据恢复

        3、数据留存和分类

        4、加密和合适的密钥管理

        5、调整AWS技术以满足合规性要求

        6、对数据进行静态加密 (例如, AWS KMS)

        7、对数据进行传输中加密(例如,适用TLS的AWS ACM)

        8、对加密密钥实施访问策略

        9、实施数据备份和复制

        10、实施数据访问、生命周期和保护策略

        11、轮换加密密钥和续订证书

加密:时间和地点

AWS Key Management Service(AWS KMS)

KMS密钥类型

AWS CloudHSM

责任分离

AWS cloudHSM 与 AWS KMS 的区别

Amazon S3 SSE(Server-Side Encryption)

保护DynamoDB中的数据

Secrets Manager

适用Secrets Manager

Secrets Manager与Parameter Store的比较

安全性设计最佳实践

最后还有以下:

        1、锁定AWS账户根用户

        2、安全组只会允许。网络ACL允许明确拒绝。

        3、优先选择IAM角色,不选择访问密钥