【Azure上云项目实战】 合规性的身份验证与访问控制:在 Azure 中实现符合 PCI DSS 要求的架构设计

news2024/11/16 21:59:12

在这里插入图片描述

文章目录

    • 一、开篇写在前面
    • 二、项目背景及介绍
    • 三、Azure PCI DSS 项目架构及组件
    • 四、身份验证、访问控制
      • 4.1 三层防御控制
      • 4.2 三层部署结构
    • 五、跳板机
    • 六、与 PCI DSS 要求的关系
    • 七、该篇总结(重要
    • 写在文末

一、开篇写在前面

各位博客阅读者们以及对云计算感兴趣的小伙伴们,微软 Azure 云的基础部分更新已经接近了尾声,从上周末到这周三,我一直没有更文,最近主要 focus 在后续如何更新以及博客内容梳理上,接下来的一小段时间我会将 Azure 基础的后续零散更新完毕,这主要包括剩余的两个部分:

  • 用于管理和部署 Azure 资源的功能和工具
  • Azure 中的监视工具

接下来的这几周我会准备好上面的剩余两个部分文章稿件的同时,从这周开始会更新企业内应用 Azure 云的真实案例进行讲解。

前几天和朋友聊,我说现在更新博文时间很紧张,但是依然保持一周至少更新一篇的节奏,后来有不止一次听说关于有些博主直接照搬别人的资料或者文章出来,比如从某某某复制到某某某等等,或者买本书籍,直接把书的内容弄到 CSDN博客上来。讲实话我有点小难过,难过的是类似一直肝原创,并且非常努力的一些博主的辛苦有可能被淹没在这卷卷的大浪中,另一方面是别人的成果得不到尊重,就比如我写的 Azure 系列的文章,绝大部分,我可以说 99% 的图都是我自己一点点画出来的,但是有的站外的人可能一个爬虫不到1分钟就给爬走了。

此处省略一百万字用来你懂的。

二、项目背景及介绍

该项目是关于支付卡行业 (PCI) 数据安全标准 (DSS)的一个 Azure 云项目,之所以拿这个举例,是因为一方面微软 Azure 云的安全标准通过了该标准的审计,另一个方面是以该标准为例子的项目在微软官方也有提到过。

这里简单提一下什么是 PCI DSS

PCI DSS是Payment Card Industry Data Security Standard(付款卡行业数据安全标准)的缩写,通常简称为PCI DSS。

PCI DSS是一组由支付卡产业安全标准理事会(Payment Card Industry Security Standards Council,PCI SSC)制定的安全标准,旨在保护持有者信息(Cardholder Data)和支付卡数据的安全性。该标准适用于所有处理、存储或传输持有者信息的组织,包括商户、支付处理服务提供商、银行和其他涉及支付卡交易的机构。

想必一些做国企或者银行项目的同学对这个协议应该并不陌生。

本文是 #云计算解决方案与架构 专栏中的一部分。我们以 PCI DSS 要求为例,详细介绍每个要求及其在 Azure 中的实现。

本文将介绍在 PCI DSS 项目中,如何构建符合 Azure 云平台要求的 PCI DSS 兼容架构。

三、Azure PCI DSS 项目架构及组件

该系统的配置如下。事实上我们构建的实际站点具有更复杂的配置,包括与公司网络的 ExpressRoute 连接,但基本思想是相同的。

在这里插入图片描述

首先,整个系统部署在虚拟网络中。从左前方看,公共端点受到应用网关 + WAF 的保护,并通过内部LB连接到应用服务环境(ASE)。

该应用程序部署在 ASE 上并将数据存储在后端 SQL 数据库中。与数据库的通信通过虚拟网络服务端点进行加密和保护。它通过 Express Route 连接到公司网络,并允许与特定系统(系统联动伙伴)进行通信以进行系统联动。另外,还安装了堡垒(跳板机)服务器(Bastion)进行运营管理,通过 Express Route 限制特定终端对堡垒服务器的访问。日志和指标聚合在 Azure Monitor 中。

该系统按组件部署在虚拟网络内的网络安全组 (NSG) 保护的子网内。该架构还包括应用程序网关、Azure DNS 和负载均衡器。

NSG 仅允许组件之间进行必要的通信。这种分离政策比 PCI DSS 的要求更严格,但我们积极使用它,因为它很容易通过 Azure 以较低的额外成本实施。

在解决方案中使用了 Azure 存储帐户,客户可以配置使用存储服务加密来保持数据在静态状态下的机密性。Azure 会在客户选择的数据中心中存储三份数据以增强韧性。地理冗余存储确保数据会被复制到距离数百英里之外的辅助数据中心,并在该数据中心内再次存储三份数据,以防止客户主要数据中心发生不良事件导致数据丢失。

此外,Application Insights 通过 Azure 监视日志提供实时的应用程序性能管理和分析。

此架构解决方案使用以下的 Azure 服务:

  • 应用服务环境 v2
  • 应用程序网关
    • Web 应用程序防火墙
    • 防火墙模式:防护
    • 规则集:OWASP 3.0
    • 侦听器端口:443
  • Application Insights
  • Azure Active Directory
  • Azure 自动化
  • Azure DNS
  • Azure Key Vault
  • Azure 负载均衡器
  • Azure Monitor
  • Azure 资源管理器
  • Azure 安全中心
  • Azure SQL 数据库
  • Azure 存储
  • Azure 虚拟网络
    • 16 网络
    • 24 网络
    • 网络安全组
  • Azure Web 应用

四、身份验证、访问控制

Azure 与传统本地安全模型不同的最重要一点是,基本安全是零信任、基于身份的安全验证,关于零信任模型,可以参考我以前的文章《构建安全架构的 Azure 云:深入了解零信任体系结构》。

4.1 三层防御控制

在这个系统中,Azure本身就是 Id Based Security,整个应用架构都受到 Id Based Security 的保护。另外,基本思想是一切都不能信任(零信任)。这个想法甚至不信任内部网络,而是进行身份验证并仅允许预定义的访问。

该系统不仅对外方向而且对企业网络侧都采用相同的策略,并通过认证和访问控制来保护对系统的所有访问。

Azure 资源如何受到保护?当服务部署在Azure上时,将如下图所示进行配置。最底层是 Azure 基础层中间层是 Azure 资源层最上面是用户创建的应用程序

通常所说的基础设施部分是最底层的两层,最上面的一层是应用程序。

在这里插入图片描述

4.2 三层部署结构

在 Azure 中,经过 Azure AD 身份验证的操作员通过 Azure 资源管理器执行对资源的操作。这些操作由基于 RBAC(Role-Based Access Control)的权限判断来控制,同时操作历史记录会被记录在 Activity Log 中。RBAC 允许你定义资源操作权限以控制对资源的访问。此外,你还可以通过 API 来执行这些操作,并编写脚本来自动化这些过程。

在这里插入图片描述

这里重要的是,网络设置和服务器设置等基础设施工作是基于身份验证和访问控制来执行的。操作历史可以保存为审核日志,并且可以通过自动化(编码)来实现。这些功能有助于满足 PCI DSS 的要求

五、跳板机

我们在系统中引入了跳板机服务器来管理对公司网络的操作访问。所有运营操作都必须通过跳板机服务器进行认证和访问控制,以确保运营管理员的安全访问。如果需要,可以通过堡垒服务器连接到数据库,但即使在这种情况下,我们也会限制操作员的权限,以防止他们访问不应引用的表和列。这些权限限制是根据操作要求确定的。另外,我们结合了 SQL 数据库审计,以实现对操作的广泛审计。这些措施有助于满足 PCI DSS 的要求。

在这里插入图片描述

对于什么是跳板机,这里做个简短说明(已经了解的同学这个解释可以跳过):

跳板机是一种用于安全访问和管理其他计算设备的中间服务器。它是在网络架构中作为安全防护措施的一部分,用于提供受限访问权限,从而增强网络安全。

跳板机通常位于内部网络和外部网络之间,也可以在内部网络的子网中。它是一台独立的服务器,经过高度保护和配置,仅允许经过授权的用户访问。用户需要先连接到跳板机,通过身份验证后,才能进一步连接到其他受保护的服务器或网络设备。

跳板机在 Azure 中,英文是:Bastion,你也可能在其他的云厂商或者文档中看见Jump Box字样,也同样代表跳板机。

六、与 PCI DSS 要求的关系

PCI DSS 中相当于身份验证和访问控制的是要求 7 和 8。它需要最低限度的必要访问权限、无共享帐户、始终分配个人帐户以及正确管理 ID 密码。

该系统使用 Azure AD 作为企业帐户。通过向每个人发放个人账户并使用 RBAC 限制对基本要素的访问来满足要求。

要求 9 与物理访问控制有关。Azure 中不允许物理访问,资源操作是通过 Azure REST API 进行的。API 受到身份验证和访问控制。这是一个共同责任的例子,身份管理是客户的责任,API 访问控制是云提供商的责任。

通过在 Log Analytics 中的企业帐户中存储审核所需期间的活动日志和操作历史记录,可以满足要求 10 中与持卡人数据审核日志管理相关的要求。

在这里插入图片描述

(图片为 PCI DSS 数据安全标准)

七、该篇总结(重要

注意:此处的文末总结不同于我其他的文章,以前的文章大部分是总结或者说是一种回顾文章,此处的总结是针对 架构以及一些最佳实践总结而出,建议对云架构有兴趣的同学要知晓此处要点。

在身份验证、访问控制等合规性上,要遵循:

  • 资源配置和设置在 AAD 认证下完成
  • 访问控制 (RBAC) 与 AAD 身份验证结合使用
  • 资源操作可以在代码中完成
  • 操作存储在 Log Analytics 中

通过采用这样的机制,PCI DSS 要求的以下项目的操作难度将显着降低。

  • 审核未经授权的配置更改
  • 成分标准的澄清
  • 定期配置检查的实际执行

此外,Azure 资源没有固定的默认密码,并且不受 PCI DSS 要求 2 禁止使用默认密码的约束。这可以说是基于业界最新安全理念的服务设计,可以轻松构建符合 PCI DSS 的环境。

在这里插入图片描述

(图片为 PCI DSS 数据安全标准)

写在文末

该篇是 【Azure上云项目实战】PCI DSS 项目的第一篇,主要讲解了其项目架构,特别针对身份验证与访问控制这块,对于如何符合 PCI DSS 的要求进行了总结,试想如果你做了 PCI DSS 类似的项目,一定会有相关的法规,在你设计云架构的时候,或者给客户讲解的时候,如何能保证其符合要求,本文做了详细的解答和讲解,希望对这方面的阅读者们有所帮助。

[ 本文作者 ]   bluetata
[ 原文链接 ]   https://bluetata.blog.csdn.net/article/details/132068024
[ 最后更新 ]   08/02/2023 22:41
[ 版权声明 ]   如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【A200】Ubuntu18.04 + ROS-Melodic + 比业电子VISIOSCAN雷达 评测

大家好,我是虎哥,朋友介绍,有一款单线激光雷达,25米的检测距离,有80HZ的扫描频率,而且角度分辨率最高可以到0.1,这个参数我确实没有见过,所以立刻着手从厂家那申请到了VISIOSCAN雷达…

Android的Handler消息通信详解

目录 背景 1. Handler基本使用 2. Handler的Looper源码分析 3. Handler的Message以及消息池、MessageQueue 4. Handler的Native实现 4.1 MessageQueue 4.2 Native结构体和类 4.2.1 Message结构体 4.2.2 消息处理类 4.2.3 回调类 4.2.5 ALooper类 5. 总结&…

轻量级目标检测模型NanoDet-Plus微调、部署(保姆级教学)

前言 NanoDet-Plus是超快速、高精度的轻量级无锚物体检测模型,github项目文件。可以在移动设备上实时检测。其主要特点是 超轻量:模型文件仅980KB(INT8)、1.8MB(FP16)超快:移动ARM CPU上97fps(10.23ms)高精度&#xf…

C++内存管理(动态内存开辟)

我们在C语言当中想要使用堆区的空间的时候就需要使用malloc函数进行手动的申请,但是我们在申请的时候需要手动进行计算,经过计算之后还需要进行判空操作,并且还不能进行任意值的初始化。这一切看起来在学习完C当中的动态开辟之前显得很正常&a…

最新版本mac版Idea 激活Jerbel实现热部署

1.环境准备 1.安装docker desktop 客户端创建本地服务 2.创建guid 3.随便准备一个正确格式的邮箱 2.具体操作 1.通过提供的镜像直接搭建本地服务 docker pull qierkang/golang-reverseproxy docker run -d -p 8888:8888 qierkang/golang-reverseproxy2.guid 通过如下网址直…

小C说历史(人物介绍第一篇):传奇人物Linus Torvalds 缔造Linux和Git

传奇人物Linus Torvalds 缔造Linux和Git Linus Torvalds,1969年12月28日出生于芬兰的赫尔辛基,Linux核心的创作者。当Linus十岁时,他的祖父,赫尔辛基大学的一位统计教授,购买了一台Commodore VIC-20计算机。Linus帮助他…

Mybatis-Plus面向实用知识点——结合SpringBoot

目录 环境配置基本流程各类中的方法BaseMapperIServiceCOUNTGETQueryListPageRemoveSaveUpdate 环境配置 参考java项目各框架环境配置 基本流程 创建Mapper Mapper public interface MyMapper extends BaseMapper<Entity>{}创建Service public interface MyService …

【娱乐圈明星知识图谱2】信息抽取

目录 1. 项目介绍 2. 信息抽取介绍 3. ChatGPT 信息抽取代码实战 4. 信息抽取主逻辑 5. 项目源码 1. 项目介绍 利用爬虫项目中爬取的大量信息 【娱乐圈明星知识图谱1】百科爬虫_Encarta1993的博客-CSDN博客娱乐圈明星知识图谱百度百科爬虫百度百科爬虫百度百科爬虫百度百…

【vue】 vue2 监听滚动条滚动事件

代码 直接上代码&#xff0c;vue单文件 index.vue <template><div class"content" scroll"onScroll"><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容…

java 定时任务不按照规定时间执行

这里写目录标题 使用异步启动可能出现的问题排查代码中添加的定时任务步骤是否正确排查是否任务阻塞&#xff0c;如果定时任务出现异常阻塞后&#xff0c;将不会在次执行java中多个Scheduled定时器不执行为了让Scheduled效率更高&#xff0c;我们可以通过两种方法将定时任务变成…

springboot 整合代码块实现访问

一 springboot整个代码块实 2.访问

补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现&#xff0c;只有一小部分常用包是存在源码及其注释的&#xff0c;而很多内部包是没有源码&#xff0c;class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法&#xff1a;参考文档。本文主要是根据这篇文章记…

语义检索系统【一】:基于无监督预训练语义索引召回:SimCSE、Diffcse

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

VB6: 安装界面中文乱码,打开项目中文乱码

Win11环境下的VB6开发&#xff0c;遇到中文乱码问题。 1.在安装VB6开发环境的时候&#xff0c;对话框各种乱码 2.安装完&#xff0c;或者用绿色版VB6&#xff0c;打开现有项目的时候&#xff0c;中文内容出现乱码 解决方法&#xff1a; 参考这篇文章&#xff1a;Windows: 文…

cc2652主协处理器分时控制同一个外设的问题

问题已提交TI论坛&#xff0c;我是提交到的中文论坛&#xff0c;然后fae给转到英文论坛了。 简单描述就是&#xff0c;怎么让这个单片机一会用主处理器控制SPI设备&#xff0c;一会再用协处理器控制同一个设备。 主处理器的spi配置使用 CCS studio配置的 协处理器使用Sensor Co…

监控对象都有哪些分类

1、业务监控 这类指标是管理层非常关注的&#xff0c;代表企业营收&#xff0c;或者跟客户主流程相关&#xff0c;类似 BI 数据。不过相比 BI 数据&#xff0c;业务监控指标有两点不同。 对精确度要求没有那么高&#xff1a;因为监控只要发现趋势异常就可以&#xff0c;至于是…

Spring Boot的自动配置原理

一.原理解释 Spring Boot的自动配置是Spring框架的一个重要特性&#xff0c;它旨在简化应用程序的开发和部署过程。自动配置通过基于类路径中的依赖关系和配置文件内容来预先配置Spring应用程序的各种组件和功能。这样&#xff0c;我们可以在无需显式配置大量参数的情况下&…

springboot中配置bpmnjs插件-activiti7流程图绘制插件/IDEA中运行bpmnjs

BPMNJS的安装和使用需要依赖nodejs插件,需要先安装NODEJS,因为bpmnjs插件的运行需要使用到NODEJS中的npm命令。 安装nodejs 安装和使用bpmnjs插件,绘制activiti工作流需要的流程图。 1、安装和配置nodejs 2.1、下载nodejs https://nodejs.org/en 1.2、安装nodejs,默认安…

通用指令(汇编)

一、数据处理指令1&#xff09;数学运算数据运算指令的格式数据搬移指令立即数伪指令加法指令带进位的加法指令减法指令带借位的减法指令逆向加法指令乘法指令数据运算指令的扩展 2&#xff09;逻辑运算按位与指令按位或指令按位异或指令左移指令右移指令位清零指令 3&#xff…

RabbitMQ-API

这里写目录标题 Hello word 模式添加依赖生产者消费者获取信道工具类 Work Queues模式消费者代码 C1开启多线程运行启动 消费者代码 C2生产者代码 消息应答自动应答消息应答的方法Multiple 的解释消息自动重新入队消息手动应答代码消费者API 队列持久化消息持久化不公平分发消息…