企业越来越多地采用公共云来实现其敏捷和灵活性。他们利用云的优势来创造收入并优化业务的资源使用。Microsoft Azure提供了众多服务和功能,企业可以像构建块一样组装这些服务和功能,以满足各种工作负载和应用程序的需求。
决定使用Microsoft Azure只是实现云优势的第一步。第二步是了解企业如何有效地使用Azure并确定需要采用的基线功能来解决以下问题:
- “我担心数据主权;我如何确保我的数据和系统符合我们的监管要求?”
- “我怎么知道每个资源都支持什么,所以我可以解释它并准确地收回它?”
- “我想确保我们在公共云中部署或执行的所有操作始于安全思维,我该如何帮助实现这一目标?”
没有护轨的空订阅前景令人生畏。此空白空间可能会妨碍您迁移到Azure。
本文为技术专业人员提供了一个起点,以满足治理需求并使其与敏捷性需求保持平衡。它引入了企业支架的概念,该架构可指导组织以安全的方式实施和管理其Azure环境。它提供了开发有效和高效控制的框架。
需要治理
迁移到Azure时,您必须尽早解决治理主题,以确保在企业内成功使用云。不幸的是,创建综合治理系统的时间和官僚作风意味着一些业务团队直接转向提供商而不涉及企业IT。如果资源未得到妥善管理,这种方法可能会使企业受到损害。公共云的特征 - 敏捷性,灵活性和基于消费的定价 - 对于需要快速满足客户(内部和外部)需求的业务团队而言非常重要。但是,企业IT需要确保数据和系统得到有效保护。
在创建建筑物时,脚手架用于创建结构的基础。脚手架引导大致轮廓并为要安装的更永久的系统提供锚点。企业架构是相同的:一组灵活的控件和Azure功能,为环境提供结构,以及在公共云上构建的服务的锚点。它为构建者(IT和业务组)提供了创建和附加新服务的基础,从而保持了交付速度。
脚手架基于我们从与各种规模的客户的许多交往中收集的实践。这些客户包括从开发云解决方案的小型组织到大型跨国企业以及正在迁移工作负载和开发云原生解决方案的独立软件供应商。企业架构是“专门构建的”,可以灵活地支持传统的IT工作负载和敏捷的工作负载;例如,开发人员基于Azure平台功能创建软件即服务(SaaS)应用程序。
企业支架旨在成为Azure中每个新订阅的基础。它使管理员能够确保工作负载满足组织的最低治理要求,而不会阻止业务组和开发人员快速实现自己的目标。我们的经验表明,这极大地加速了而不是阻碍了公共云的增长。
注意
Microsoft已发布一项名为Azure Blueprints的新功能,该功能使您能够跨订阅和管理组打包,管理和部署常见映像,模板,策略和脚本。此功能是脚手架作为参考模型的目的与将该模型部署到组织之间的桥梁。
下图显示了支架的组件。该基础依赖于管理层次结构和订阅的可靠计划。支柱包括资源管理器策略和强大的命名标准。脚手架的其余部分是核心Azure功能和功能,可以启用和连接安全且可管理的环境。
定义层次结构
scaffold的基础是Azure企业注册到订阅和资源组的层次结构和关系。企业注册从合同的角度定义了公司内Azure服务的形状和用途。在企业协议中,您可以进一步将环境细分为部门,帐户,最后是订阅和资源组,以匹配组织的结构。
Azure订阅是包含所有资源的基本单元。它还定义了Azure中的若干限制,例如核心数,虚拟网络和其他资源。Azure资源组用于进一步优化订阅模型并实现更自然的资源分组。
每个企业都是不同的,上图中的层次结构允许在公司内部组织Azure的方式具有很大的灵活性。建模层次结构以反映公司对计费,资源管理和资源访问的需求是您在公共云中启动时做出的第一个 - 也是最重要的 - 决策。
部门和账户
Azure注册的三种常见模式是:
功能模式
业务单元模式
地理格局
尽管这些模式中的每一种都有其自身的地位,但由于其在组织成本模型建模方面的灵活性以及反映控制范围,因此越来越多地采用业务单元模式。Microsoft Core Engineering and Operations小组创建了一个非常有效的业务单元模式子集,以联邦,州和本地为模型。(有关更多信息,请参阅组织企业中的订阅和资源组。)
管理组
Microsoft最近发布了一种新的层次结构建模方法:Azure管理组。管理组比部门和帐户更灵活,可以嵌套多达六个级别。管理组允许您创建与计费层次结构分离的层次结构,仅用于有效管理资源。管理组可以镜像您的结算层次结构,通常企业也会这样开始。但是,管理组的强大功能在于,当您使用它们为组织建模时,相关订阅 - 无论它们在计费层次结构中的哪个位置 - 都组合在一起,需要分配共同角色以及策略和计划。几个例子:
生产/非生产。一些企业创建管理组以识别其生产和非生产订阅。管理组允许这些客户更轻松地管理角色和策略,例如:非生产订阅可能允许开发人员“贡献者”访问,但在生产中,他们只有“读者”访问权限。
内部服务/外部服务。与生产/非生产非常相似,企业通常对内部服务与外部(面向客户)服务有不同的要求,政策和角色。
经过深思熟虑的管理团队以及Azure策略和计划是Azure有效治理的支柱。
订阅
在决定部门和帐户(或管理组)时,您主要关注的是如何划分Azure环境以匹配您的组织。但是,订阅是实际工作发生的地方,您的决策会影响安全性,可扩展性和计费。许多组织将以下模式视为指南:
申请/服务:订阅代表应用程序或服务(应用程序组合)
生命周期:订阅代表服务的生命周期,例如生产或开发。
部门:订阅代表组织中的部门。
前两种模式是最常用的模式,强烈建议使用这两种模式。生命周期方法适用于大多数组织。在这种情况下,一般建议是使用两个基本订阅。“生产”和“非生产”,然后使用资源组进一步打破环境。
资源组
Azure Resource Manager使您可以将资源放入有意义的组中,以实现管理,计费或自然关联。资源组是具有共同生命周期或共享诸如“所有SQL服务器”或“应用程序A”之类的属性的资源的容器。
资源组不能嵌套,资源只能属于一个资源组。某些操作可以对资源组中的所有资源执行操作。例如,删除资源组会删除资源组中的所有资源。与订阅一样,创建资源组时也存在常见模式,从“传统IT”工作负载到“敏捷IT”工作负载会有所不同:
“传统IT”工作负载通常按同一生命周期内的项目(例如应用程序)进行分组。按应用程序分组允许单独的应用程序管理。
“敏捷IT”工作负载倾向于关注面向外部客户的云应用程序。资源组通常反映部署层(例如Web Tier,App Tier)和管理层。
注意
了解您的工作负载可帮助您制定资源组策略。这些模式可以混合和匹配。例如,与“Agile”资源组在同一订阅中的共享服务资源组。
命名标准
支架的第一个支柱是一致的命名标准。精心设计的命名标准使您能够识别门户,账单和脚本中的资源。您可能已经拥有本地基础结构的现有命名标准。将Azure添加到您的环境时,您应该将这些命名标准扩展到Azure资源。
技巧
对于命名约定:
在可能的情况下审查并采用模式和实践指南。本指南可帮助您确定有意义的命名标准并提供大量示例。
使用资源管理器策略来帮助实施命名标准
请记住,以后更改名称很困难,所以现在几分钟就可以为您节省麻烦。
将您的命名标准集中在那些更常用和搜索的资源上。例如,为清晰起见,所有资源组都应遵循强有力的标准。
资源标签
资源标签与命名标准紧密结合。随着资源被添加到订阅中,对它们进行逻辑分类以用于计费,管理和操作目的变得越来越重要。有关更多信息,请参阅使用标记来组织Azure资源。
重要
标签可能包含个人信息,可能属于GDPR的规定。计划仔细管理您的标签。如果您正在寻找有关GDPR的一般信息,请参阅服务信任门户的GDPR部分。
除了计费和管理之外,标签还以多种方式使用。它们通常用作自动化的一部分(参见后面的部分)。如果不事先考虑,这可能会导致冲突。建议的做法是识别企业级别的所有常用标记(例如ApplicationOwner,CostCenter),并在使用自动化部署资源时一致地应用它们。
Azure政策和倡议
脚手架的第二个支柱涉及使用Azure策略和计划通过对订阅中的资源和服务实施规则(带效果)来管理风险。Azure Initiatives是旨在实现单一目标的策略集合。然后,将Azure策略和计划分配到资源范围,以开始实施特定策略。
与前面提到的管理组一起使用时,Azure策略和计划更加强大。管理组可以将计划或策略分配给整个订阅集。
资源管理器策略的常见用法
Azure策略和计划是Azure工具包中的强大工具。策略允许公司为“传统IT”工作负载提供控制,以实现LOB应用程序所需的稳定性,同时还允许“敏捷”工作负载;例如,开发客户应用程序而不会使企业面临额外风险。我们在政策中看到的最常见模式是:
- 地理合规/数据主权。Azure在全球范围内的地区名单越来越多。企业通常需要确保特定范围内的资源保留在地理区域以满足法规要求。
- 避免公开暴露服务器。Azure策略可以禁止部署某些资源类型。常见的用途是创建一个策略来拒绝在特定范围内创建公共IP,从而避免服务器无意中暴露于互联网。
- 成本管理和元数据。资源标记通常用于将重要的计费数据添加到资源和资源组,例如CostCenter,所有者等。这些标签对于准确计费和管理资源非常有用。策略可以强制将资源标记应用于所有已部署的资源,从而使其更易于管理。
倡议的共同用途
引入计划为企业提供了一种将逻辑策略组合在一起并整体跟踪的方法。倡议进一步支持企业满足“敏捷”和“传统”工作负载的需求。我们已经看到了非常有创意的举措用途,但我们通常会看到:
在Azure安全中心中启用监视。这是Azure策略中的默认计划,也是计划的一个很好的示例。它支持识别未加密的SQL数据库,VM漏洞和更常见的安全相关需求的策略。
监管具体举措。企业通常将监管要求共同的政策(例如HIPAA)分组,以便有效地跟踪对这些控制的控制和合规性。
资源类型和SKU。创建限制可以部署的资源类型以及可以部署的SKU的计划可以帮助控制成本并确保您的组织仅部署您的团队拥有支持的技能组和过程的资源。
技巧
我们建议您始终使用主动定义而不是策略定义。将主动权分配给范围(例如订阅或管理组)后,您可以轻松地向主动添加另一个策略,而无需更改任何分配。这使得理解应用的内容和跟踪合规性变得更加容易。
政策和倡议任务
创建策略并将其分组为逻辑计划后,必须将策略分配给作用域,无论是管理组,订阅还是资源组。通过分配,您还可以从策略分配中排除子范围。例如,如果您拒绝在订阅中创建公共IP,则可以为连接到受保护DMZ的资源组创建一个排除项。
您将找到几个策略示例,说明如何在此GitHub存储库中将策略和计划应用于Azure中的各种资源。
身份和访问管理
在开始使用公共云时,您首先要问自己的第一个也是最关键的问题之一是“谁应该有权访问资源?” 和“我该如何控制这种访问?” 允许或禁止访问Azure门户以及控制对门户中资源的访问权限对于资产在云中的长期成功和安全至关重要。
要完成保护资源访问的任务,首先要配置身份提供程序,然后配置角色和访问权限。Azure Active Directory(Azure AD)连接到本地Active Directory,是Azure Identity的基础。也就是说,Azure AD不是Active Directory,了解Azure AD租户是什么以及它与Azure注册的关系非常重要。查看可用信息以获得Azure AD和AD的坚实基础。若要将Active Directory连接并同步到Azure AD,请在本地安装和配置AD Connect工具。
最初发布Azure时,对订阅的访问控制是基本的:管理员或共同管理员。访问Classic模型中的订阅意味着可以访问门户中的所有资源。缺乏细粒度控制导致订阅数量激增,为Azure注册提供了一定程度的合理访问控制。不再需要这种订阅的激增。使用基于角色的访问控制(RBAC),您可以将用户分配给提供公共访问的标准角色,例如“所有者”,“贡献者”或“读者”,甚至可以创建自己的角色
在实施基于角色的访问时,强烈建议以下内容:
- 控制订阅的管理员/共同管理员,因为这些角色具有广泛的权限。如果需要管理Azure Classic部署,则只需将订阅所有者添加为共同管理员。
- 使用管理组为多个订阅分配角色,并减少在订阅级别管理角色的负担。
- 将Azure用户添加到Active Directory中的组(例如,Application X Owners)。使用同步组为组成员提供管理包含应用程序的资源组的适当权限。
- 遵循授予执行预期工作所需的最小权限的原则。
重要
考虑使用Azure AD特权身份管理,Azure多重身份验证和条件访问功能,以便为Azure订阅中的管理操作提供更好的安全性和更高的可见性。这些功能来自有效的Azure AD Premium许可证(取决于功能),以进一步保护和管理您的身份。Azure AD PIM通过批准工作流实现“即时”管理访问,并对管理员激活和活动进行全面审核。Azure MFA是另一项关键功能,可以通过两步验证登录Azure门户。与条件访问控制相结合,您可以有效地管理您的妥协风险。
规划和准备您的身份和访问控制以及遵循Azure身份管理最佳实践(链接)是您可以采用的最佳风险缓解策略之一,并且应该被视为每个部署的强制策略。
安全
云计算采用的最大阻碍之一传统上一直是对安全性的担忧。IT风险经理和安全部门需要确保默认情况下Azure中的资源受到保护和安全。Azure提供了许多功能,您可以利用这些功能来保护资源并检测/防止针对这些资源的威胁。
Azure安全中心
除了高级威胁防护之外,Azure安全中心还提供整个环境中资源安全状态的统一视图。Azure安全中心是一个开放式平台,使Microsoft合作伙伴能够创建插入并增强其功能的软件。Azure安全中心(免费套餐)的基准功能提供评估和建议,可以增强您的安全状况。其付费层可实现额外且有价值的功能,例如Just In Time管理员访问和自适应应用程序控制(白名单)。
技巧
Azure安全中心是一个非常强大的工具,不断得到增强,并集成了可用于检测威胁和保护企业的新功能。强烈建议始终启用ASC。
Azure资源锁定
随着您的组织向订阅添加核心服务,避免业务中断变得越来越重要。我们经常看到的一种类型的中断是针对Azure订阅的脚本和工具的意外后果,错误地删除了资源。资源锁使您可以限制对高价值资源的操作,而修改或删除它们会产生重大影响。锁定应用于订阅,资源组甚至单个资源。常见用例是将锁应用于基础资源,例如虚拟网络,网关,网络安全组和密钥存储帐户。
安全的DevOps工具包
“Azure的安全DevOps工具包”(AzSK)是最初由Microsoft自己的IT团队创建并通过Github(链接)在OpenSource中发布的脚本,工具,扩展,自动化等的集合。AzSK迎合了结束Azure订阅和资源安全需求的团队使用广泛的自动化并将安全性平稳地集成到本地开发工作流程中,帮助实现这6个重点领域的安全开发:
- 保护订阅
- 实现安全开发
- 将安全性集成到CICD中
- 持续保证
- 警报和监控
- 云风险治理
AzSK是一套丰富的工具,脚本和信息,是完整Azure治理计划的重要组成部分,并将其整合到您的支架中对于支持您的组织风险管理目标至关重要
Azure更新管理
您可以采取的保护环境安全的关键任务之一是确保使用最新更新修补服务器。虽然有许多工具可以实现这一目标,但Azure提供了Azure更新管理解决方案,以解决关键操作系统补丁的识别和部署问题。它使用Azure自动化(本指南后面的“自动化”部分对此进行了介绍。
监控和警报
收集和分析遥测,提供您在所有Azure订阅中使用的服务的活动,性能指标,运行状况和可用性的视线,对于主动管理您的应用程序和基础架构至关重要,并且是每个Azure订阅的基本需求。每个Azure服务都以活动日志,度量标准和诊断日志的形式发出遥测。
- 活动日志描述对订阅中的资源执行的所有操作
- 度量标准是从资源中发出的描述资源性能和运行状况的数字信息
- 诊断日志由Azure服务发出,并提供有关该服务操作的丰富,频繁的数据。
可以在多个级别查看和处理此信息,并不断改进。Azure通过下图中列出的服务提供Azure资源的共享,核心和深层监视功能。
共享功能
- 警报:您可以从Azure资源收集每个日志,事件和指标,但无法获得关键条件和行为的通知,此数据仅对历史目的和取证有用。Azure警报会主动通知您在所有应用程序和基础架构中定义的条件。您可以在使用操作组通知收件人集的日志,事件和指标之间创建警报规则。操作组还提供使用外部操作(如webhooks)自动执行修复以运行Azure自动化Runbook和Azure功能的功能。
- 仪表板:仪表板使您可以聚合监视视图并跨资源和订阅组合数据,从而为您提供企业范围内的Azure资源遥测视图。您可以创建和配置自己的视图并与他人共享。例如,您可以创建一个由DBA的各种磁贴组成的仪表板,以提供跨所有Azure数据库服务的信息,包括Azure SQL DB,用于PostgreSQL的Azure DB和用于MySQL的Azure DB。
- 度量资源管理器:度量标准是由Azure资源生成的数值(例如%CPU,磁盘I / O,可提供对资源的操作和性能的深入了解。通过使用Metrics Explorer,您可以定义并发送您感兴趣的度量标准。Log Analytics用于聚合和分析。
核心监测
- Azure监视器:Azure监视器是核心平台服务,它提供用于监视Azure资源的单一源。Azure Monitor的Azure门户界面为Azure中的所有监控功能提供了集中的跳转点,包括Application Insights,Log Analytics,网络监控,管理解决方案和服务映射的深层监控功能。使用Azure Monitor,您可以对整个云环境中来自Azure资源的指标和日志进行可视化,查询,路由,归档和操作。除门户外,您还可以通过Monitor PowerShell Cmdlet,跨平台CLI或Azure Monitor REST API检索数据。
- Azure Advisor:Azure Advisor持续监控您的订阅和环境中的遥测,并提供有关如何优化Azure资源的最佳实践建议,以节省资金并提高构成应用程序的资源的性能,安全性和可用性。
- 服务运行状况:Azure服务运行状况可识别可能影响应用程序的Azure服务的任何问题,并帮助您规划计划的维护时段。
- 活动日志:活动日志描述订阅中资源的所有操作。它提供了一个审计跟踪,以确定对资源的任何创建,更新,删除操作的“什么”,“谁”和“何时”。活动日志事件存储在平台中,可供查询90天。您可以将活动日志提取到Log Analytics中,以实现更长的保留期,并跨多个资源进行更深入的查询和分析。
深度应用监控
- 应用程序洞察:Application Insights使您能够收集特定于应用程序的遥测并监视云或内部部署中应用程序的性能,可用性和使用情况。通过使用支持的SDK为多种语言设置应用程序,包括.NET,JavaScript,JAVA,Node.js,Ruby和Python。Application Insights事件被提取到支持基础架构和安全监视的同一Log Analytics数据存储中,使您能够通过丰富的查询语言随时间关联和聚合事件。
深基础设施监控
- 日志分析:日志分析通过从各种来源收集遥测数据和其他数据,并提供查询语言和分析引擎,让您深入了解应用程序和资源的运行情况,从而在Azure监控中发挥核心作用。您可以通过高性能的日志搜索和视图直接与Log Analytics数据进行交互,也可以在其他Azure服务中使用分析工具将其数据存储在Log Analytics中,例如Application Insights或Azure安全中心。
- 网络监控:Azure的网络监控服务使您能够深入了解网络流量,性能,安全性,连接性和瓶颈。精心规划的网络设计应包括配置Azure网络监控服务,如Network Watcher和ExpressRoute Monitor。
- 管理解决方案:管理解决方案是针对应用程序或服务的打包逻辑,见解和预定义Log Analytics查询集。他们依靠Log Analytics作为存储和分析事件数据的基础。样本管理解决方案包括监视容器和Azure SQL数据库分析。
- 服务地图:服务地图提供了基础架构组件,其流程以及其他计算机和外部流程之间相互依赖关系的图形视图。它在Log Analytics中集成了事件,性能数据和管理解决方案。
技巧
在创建单个警报之前,请创建并维护一组可在Azure警报中使用的共享操作组。这将使您能够集中维护收件人列表的生命周期,通知传递方法(电子邮件,SMS电话号码)和Webhook到外部操作(Azure自动化Runbook,Azure功能/逻辑应用程序,ITSM)。
成本管理
当您从本地云迁移到公共云时,您将面临的主要变化之一是从资本支出(购买硬件)转换为运营支出(在使用时支付服务费用)。从CAPEX到OPEX的这种转换也需要更仔细地管理您的成本。云的好处在于,只需在不需要时将其关闭(或调整大小),就可以从根本上积极地影响您使用的服务的成本。故意在云中管理您的成本是一种推荐的做法,也是成熟客户每天所做的一种做法。
Microsoft提供了多种工具,使您能够可视化,跟踪和管理成本。我们还提供了一整套API,使您能够自定义成本并将成本管理集成到您自己的工具和仪表板中。这些工具大致分为:Azure门户功能和外部功能
Azure门户功能
这些工具可为您提供有关成本的即时信息以及采取措施的能力
- 订阅资源成本:Azure成本分析视图位于门户中,可快速查看有关资源或资源组每日支出的成本和信息。
- Azure成本管理:此产品是Microsoft购买Cloudyn的结果,它允许您管理和分析Azure支出以及您在其他公共云提供商上的支出。有免费和付费层,具有丰富的功能,如概述中所示。
- Azure预算和行动小组直到最近才知道某些事情的成本并采取了一些措施更多的是手动练习。随着Azure预算及其API的引入,现在可以在成本达到阈值时创建操作(如本例所示)。例如,在达到预算的100%时关闭“测试”资源组,或者[另一个例子]。
- Azure顾问知道什么是成本只是成功的一半;另一半是知道如何处理这些信息。Azure Advisor为您提供有关为节省资金,提高可靠性甚至提高安全性而采取的措施的建议。
外部成本管理工具
- PowerBI Azure消费洞察。您想为您的组织创建自己的可视化吗?如果是这样,那么PowerBI的Azure Consumer Insights内容包是您的首选工具。使用此内容包和PowerBI,您可以创建自定义可视化来代表您的组织,对成本进行更深入的分析,并添加其他数据源以进一步丰富。
- 消费API。除了有关预算,预留实例和市场费用的信息之外,使用API还可以以编程方式访问成本和使用数据。这些API仅适用于Enterprise Enrollments和一些Web Direct订阅,但是它们使您能够将成本数据集成到您自己的工具和数据仓库中。您还可以使用Azure CLI访问这些API,如此处所示。
当我们查看长期使用云并且在使用中“成熟”的客户时,我们会看到一些强烈推荐的做法
- 积极监控成本。成熟Azure组织的组织会不断监控成本并在需要时采取措施。有些组织甚至致力于人们进行分析并建议改变使用情况,而这些人在第一次找到一个已经运行了数月的未使用的HDInsight集群时,不仅仅为自己买单。
- 使用预留实例。管理云中成本的另一个关键租户是使用正确的工具来完成工作。如果您的IaaS虚拟机必须全天候运行,那么使用预留实例将为您节省大量资金。在自动关闭VM和使用RI之间找到适当的平衡需要经验和分析。
- 有效地使用自动化:许多工作负载不需要每天运行。即使每天关闭VM 4小时也可以节省15%的成本。自动化将很快收回成本。
- 使用资源标记进行可见性:如本文档中其他地方所述,使用资源标记可以更好地分析成本。
成本管理是一个有效和高效运行公共云的核心学科。取得成功的企业将能够控制成本并将其与实际需求相匹配,而不是过度购买和希望需求。
自动化
使用云提供商区分组织成熟度的众多功能之一是它们所包含的自动化水平。自动化是一个永无止境的过程,随着您的组织迁移到云,您需要投入资源和时间进行构建。自动化有许多用途,包括一致地推出资源(它直接与另一个核心脚手架概念,模板和DevOps相关联)以解决问题。自动化是Azure脚手架的“结缔组织”,将每个区域连接在一起。
在构建此功能时,可以使用许多工具,从第一方工具(如Azure自动化,EventGrid和AzureCLI)到大量第三方工具(如Terraform,Jenkins,Chef和Puppet)(以此命名少数)。您的运营团队自动化能力的核心是Azure自动化,事件网格和Azure云Shell:
- Azure自动化:是一种基于云的功能,允许您创建Runbook(在PowerShell或Python中),并允许您自动化流程,配置资源,甚至应用补丁。Azure自动化拥有广泛的跨平台功能,这些功能对于您的部署而言是不可或缺的,但这些功能过于广泛,无法在此深入介绍。
- 事件网格:此服务是一个完全管理的事件路由系统,可让您对Azure环境中的事件做出反应。就像自动化是成熟云组织的结合组织一样,Event Grid是良好自动化的结合组织。使用Event Grid,您可以创建一个简单的无服务器操作,以便在创建新资源时向管理员发送电子邮件并将该资源记录在数据库中。相同的事件网格可以在删除资源时通知,并从数据库中删除该项。
- Azure Cloud Shell:是一个基于浏览器的交互式shell,用于管理Azure中的资源。它为PowerShell或Bash提供了一个完整的环境,可以根据需要启动(并为您维护),以便您拥有一致的环境来运行脚本。Azure Cloud Shell提供对已安装的其他关键工具的访问,以自动化您的环境,包括Azure CLI,Terraform以及用于管理容器,数据库(sqlcmd)等的其他工具列表。
自动化是一项全职工作,它将迅速成为云团队中最重要的操作任务之一。采用“自动化第一”方法的组织在使用Azure方面取得了更大的成功:
- 管理成本:积极寻找机会并创建自动化以重新调整资源大小,扩大/缩小和关闭未使用的资源。
- 操作灵活性:通过使用自动化(以及模板和DevOps),您可以获得一定程度的可重复性,从而提高可用性,增强安全性并使您的团队能够专注于解决业务问题。
模板和DevOps
如“自动化”部分所述,您作为组织的目标应该是通过源控制的模板和脚本配置资源,并最大限度地减少环境的交互配置。这种“基础架构作为代码”的方法以及用于持续部署的严格的DevOps流程可以确保一致性并减少整个环境的漂移。几乎所有Azure资源都可以通过Azure资源管理器(ARM)JSON模板与PowerShell或Azure跨平台CLI和工具(如Hashicorp的Terraform(具有一流支持并集成到Azure Cloud Shell))进行部署。
这篇文章对使用Azure DevOps工具链将DevOps方法应用于ARM模板的最佳实践和经验教训进行了很好的讨论。花费时间和精力开发特定于组织要求的核心模板集,并使用DevOps工具链(Azure DevOps,Jenkins,Bamboo,Teamcity,Concourse)开发持续交付管道,尤其适用于您的生产和QA环境。GitHub上有一个大型的Azure Quick Start模板库,您可以将其用作模板的起点,并且可以使用Azure DevOps快速创建基于云的交付管道。
作为生产订阅或资源组的最佳实践,您的目标应该是利用RBAC安全性默认禁止交互式用户,并利用基于服务主体的自动连续交付管道来配置所有资源并提供所有应用程序代码。任何管理员或开发人员都不应触摸Azure门户以交互式配置资源。这一级别的DevOps需要齐心协力,并利用Azure脚手架的所有概念,并提供一致且更安全的环境,以满足您的组织规模扩大。
技巧
在设计和开发复杂的ARM模板时,使用链接的模板从单个JSON文件组织和重构复杂的资源关系。这将使您能够单独管理资源,使您的模板更具可读性,可测试性和可重用性。
Azure是一个超大规模的云提供商,当您将组织从本地服务器的世界迁移到云时,利用云提供商和SaaS应用程序使用的相同概念将使您的组织能够大大地响应业务需求更有效的方式。
核心网络
Azure scaffold参考模型的最后一个组件是您的组织以安全的方式访问Azure的核心。对资源的访问可以是内部的(在公司的网络内),也可以是外部的(通过互联网)。组织中的用户很容易无意中将资源放在错误的位置,并可能将其打开以进行恶意访问。与内部部署设备一样,企业必须添加适当的控制措施,以确保Azure用户做出正确的决策。对于订阅治理,我们确定了提供访问基本控制的核心资源。核心资源包括:
- 虚拟网络是子网的容器对象。虽然不是绝对必要,但它通常在将应用程序连接到内部公司资源时使用。
- 用户定义的路由允许您操作子网内的路由表,使您能够通过网络虚拟设备或对等虚拟网络上的远程网关发送流量。
- 通过虚拟网络对等,您可以无缝连接两个或多个Azure虚拟网络,从而创建更复杂的中心辐射设计或共享服务网络。
- 服务端点。过去,PaaS服务依靠不同的方法来保护从虚拟网络访问这些资源。服务端点允许您从仅连接的端点安全访问已启用的PaaS服务,从而提高整体安全性。
- 安全组是一组广泛的规则,使您能够允许或拒绝进出Azure资源的入站和出站流量。安全组由安全规则组成,可以使用服务标签(定义常见的Azure服务,如AzureKeyVault,Sql等)和应用程序组(定义和应用程序结构,如WebServers,AppServer等)进行扩充。
技巧
在网络安全组中使用服务标签和应用程序组不仅可以增强规则的可读性 - 这对于理解影响至关重要 - 而且还可以在更大的子网内实现有效的微分段,从而减少扩展并提高灵活性。
虚拟数据中心
Azure通过我们广泛的合作伙伴网络为您提供内部功能和第三方功能,使您能够拥有有效的安全立场。更重要的是,Microsoft以Azure虚拟数据中心的形式提供了最佳实践和指导。当您从单个工作负载转移到利用混合功能的多个工作负载时,VDC指南将为您提供“配方”,以实现随着Azure中的工作负载增长而增长的灵活网络。
下一步
治理对Azure的成功至关重要。本文针对企业架构的技术实现,但仅涉及组件之间更广泛的流程和关系。政策治理从上到下流动,取决于企业想要实现的目标。当然,Azure的治理模型的创建包括来自IT的代表,但更重要的是,它应该具有来自业务组领导者以及安全和风险管理的强有力代表。最后,企业支架旨在降低业务风险,以促进组织的使命和目标
现在您已经了解了订阅治理,现在是时候在实践中看到这些建议了。请参阅实施Azure订阅治理的示例。