ZA303学习笔记六管理应用程序的安全(密钥保管库,托管标识,管理应用程序,CA证书)

部署和配置密钥库

Azure Key Vault密钥库

密钥保管库和 VM 必须位于同一 Azure 区域和订阅中。

Azure Key Vault是一个用于安全地存储和访问机密的工具。机密是你希望严格控制对其的访问的任何东西,例如API密钥、密码或证书。保管库是机密的逻辑组。

  • 租户:租户是拥有和管理特定的Microsoft云服务实例的组织。它通常用来引用组织的Azure和offce 365服务集。(在账户下创建的组织,管理逻辑分割,财务统一管理)
  • 保管库所有者:保管库所有者可以创建密钥保管库并获得它的完全访问权限和控制权。保管库所有者还可以设置审核来记录谁访问了机密和密钥。管理员可以控制密钥生命周期。他们可以滚动到密钥的新版本、对其进行备份,以及执行相关的任务。
  • 保管库使用者:当保管库所有者为保管库使用者授予了访问权限时,使用者可以对密钥保管库内的资产执行操作。可用操作取决于所授予的权限。
  • 服务主体: Aaure服务主体是用户创建的应用、服务和自动化工具用来访问特定Avure资源的安全标识。可将其视为具有特定角色,并且权限受到严格控制的用户标识”(用户名和密码,或者证书)。与普通的用户标识不同,服务主体只需执行特定的操作。如果只向它授予执行管理任务所需的最低权限级别,则可以提高安全性。
  • Azure Active Directory (Aaure AD):Aure AD是租户的Active Dlrectory服务。每个目录有一个或多个域。每个目录可以有多个订阅与之关联,但只有一个租户。
  • Azure租户ID:租户ID是用于在Azure订阅中标识Azure AD 实例的唯一方法。
  • 托管标识:虽然Awure key Vaut可用于安全存储凭据以及其他密钥和机密,但代码需要通过Key Vaut的身份验证才能检索它们。使用托管标识可为Aaure服务提供Aure AD中的自动托管标识,更巧妙地解决了这个问题,可以使用此标识向支持Aure AD身份验证的密钥保管库或任何服务证明身份,而无需在代码中放入任何凭据。有关详细信息,请参阅下图以及Azure资源的托管标识概述。

Azure Key Vault密钥库作用

  • 加密密钥:支持多种密钥类型和算法,可以对高价值的密钥使用硬件安全模块(HSM)。不支持oct-HSM 对称密钥加密方式,支持RSA-HSM:RSA 密钥和EC-HSM:椭圆曲线键加密
  • 机密:提供机密(例如密码和数据库连接字符串)的安全存储。
  • 证书:支持基于密钥和机密并且添加了自动续订功能的证书。
  • 硬件安全模块:这些机密和密钥可以通过软件或FIPS 140-2级别2验证的HSM进行保护

Key Vault 对象

Key Vault中的对象通过URL唯一标识。不管地理位置如何,系统中都不存在两个具有相同URL的对象。对象的完整URL称为对象标识符。URL由标识Key Vault的前缀、对象类型、用户提供的对象名称和对象版本组成。对象名称不区分大小写且不可变。不包括对象版本的标识符称为基本标识符。
对象标识符具有以下常规格式:
https://{keyvault-name}.vault.azure.net/{object-type}/{object-name]/{object-version}

Azure密钥保管库高可用性

  • Azure密钥保管库具有多层冗余功能,确保密钥和机密持续可供应用程序使用,即使服务的单个组件发生,故障也是如此。
  • 密钥保管库的内容会在区域中复制,并且会复制到至少150英里以外(但位于同一个地理位置)的次要区域。这可以保持密钥和机密的高持久性。
  • 如果密钥保管库服务中的单独组件发生故障,则区域内的替代组件将继续处理请求,确保不会导致功能损失。不需要采取任何措施即可触发此功能,这种机制会以透明的方式自动发生。
  • 在整个Azure区域不可用的情况下(这很少见),对该区域中的 Azure密钥保管库发出的请求
  • 会自动路由(故障转移")到次要区域。当主要区域再次可用时,请求将路由回(故障回复”)到主要区域。同样,不需要采取任何措施,因为这会自动发生。
  • 通过这种高可用性设计,Azure密钥保管库不需要停机进行维护活动。

Azure Key Vault软删除(多重保护)

Key Vault 的软删除功能可以恢复已删除的保管库,并删除已删除的密钥保管库对象(例如密钥、机密和证书),这称为软删除。具体而言,我们要处理以下方案:此保护提供以下保护:

  • 删除密钥、密钥、证书或密钥保管库后,它将在可配置的7到90日历天内保持可恢复。如果未指定配置,则默认恢复时间将设置为90天。这为用户提供了充足的时间来通知意外的机密删除和响应。
  • 若要永久删除机密,必须执行两个操作。首先,用户必须删除该对象,然后将其置于软删除状态。其次,用户必须清除软删除状态的对象。清除操作需要其他访问策略权限。这些附加保护降低了用户意外或恶意删除密钥或密钥保管库的风险。
  • 若要清除软删除状态的机密,必须为服务主体授予额外的"清除"访问策略权限。默认情况下,清除访问策略权限不会授予任何服务主体,包括密钥保管库和订阅所有者,并且必须特意设置。如果要求提升的访问策略权限来清除软删除的机密,则会降低意外删除机密的概率。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在代码里不用明文输入密码,输入下面密码地址,就可以正常访问

在这里插入图片描述

使用PowerShell将密码存储在密钥库中

$value = convertTo-Securestring  'S3449PT !@90Q'
		-AsplainText -Force
Set-AzureKeyvaultSecret-vaultName 'measureup'-Name 'ApplicationPassword'
		-secretvalue $value
  • ConvertTo-SecureString cmdlet 将纯文本值转换为安全(加密)字符串。
  • -AsPlainText参数指示要将其转换为纯文本的字符串
  • Set-AzureKeyVaultSecret cmdlet使用指定为-name参数的名称将密码存储在密钥库中。
  • -SecretValue参数指定秘密。在这种情况下,秘密是加密的密码。

部署和配置Azure AD托管标识(Managed Service ldentity)

Azure资源的托管标识是Azure Active Directory的一项功能。支持Azure资源的托管标识的每个Azure服务都受其自己的时间线限制。

生成云应用程序时需要应对的常见挑战是,如何管理代码中用于云服务身份验证的凭据。保护这些凭据是一项重要任务。理想情况下,这些凭据永远不会出现在开发者工作站上,也不会被签入源代码管理系统中。虽然Azure Key Vault可用于安全存储凭据、机密以及其他密钥,但代码需要通过Key Vault的身份验证才能检索它们。

Azure Active Directory (Azure AD)中的Azure资源托管标识功能可以解决此问题。此功能为Azure服务提供了Azure AD 中的自动托管标识。可以使用此标识向支持Azure AD身份验证的任何服务(包括Key Vault)证明身份,无需在代码中放入任何凭据。

如果有Azure订阅,Azure AD中的Azure资源托管标识功能是免费的。不需额外付费。

托管标识类型

https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview

托管标识分为两种类型:

  • 系统分配:某些Azure服务允许您直接在服务实例上启用托管标识。启用系统分配的托管标识时,将在Azure AD中创建标识。该标识与该服务实例的生命周期相关联。删除资源时,Azure会自动删除您的身份。根据设计,只有Azure资源可以使用此身份向Azure AD请求令牌。不能被分配,它只能与单个Azure资源关联
  • 用户分配:可以创建托管标识作为独立的 Azure 资源。可以创建用户分配的托管标识,并将其分配给 Azure 服务的一个或多个实例。对于用户分配的托管标识,标识与使用它的资源分开管理。

在内部,托管标识是特殊类型的服务主体,它们已锁定,只能与Azure资源配合使用。删除托管标识时,相应的服务主体也会自动删除。此外,在创建用户分配的标识或系统分配的标识时,托管标识资源提供程序(MSRP)会在内部向该标识颁发证书。
代码可以使用托管标识来请求支持Azure AD身份验证的服务的访问令牌。Azure负责滚动更新服务实例使用的凭据。

用户分配托管标识
在这里插入图片描述
在这里插入图片描述

系统分配托管标识:在这里插入图片描述

  • 可以按照以下步骤使用托管标识:
    1:在 Azure 中创建托管标识。可以在系统分配的托管标识或用户分配的托管标识之间进行选择。
    2:使用用户分配的托管标识时,请将托管标识分配给“源”Azure 资源,例如 Azure 逻辑应用或 Azure Web 应用。
    3:授权托管标识有权访问“目标”服务。
    4:使用托管标识访问资源。在此步骤中,可以将 Azure SDK 与 Azure.Identity 库配合使用。某些“源”资源提供知道如何对连接使用托管标识的连接器。在这种情况下,您可以使用标识作为该“源”资源的功能。

使用 Azure Active Directory 对托管标识进行身份验证以访问 Azure 服务总线资源

当安全主体(用户、组或应用程序)尝试访问服务总线实体时,必须对请求进行授权。使用 Azure AD,访问资源的过程分为两个步骤。

  • 首先,对安全主体的标识进行身份验证,并返回 OAuth 2.0 令牌。用于请求令牌的资源名称为 。https://servicebus.azure.net
  • 接下来,令牌将作为请求的一部分传递给服务总线服务,以授权对指定资源的访问。

安全主体(用户、组或应用程序)打开标识

打开托管标识要使用具有托管标识的服务总线,需要将标识、角色和适当的范围。

  • 进入设置并选择标识。
  • 选择要打开的状态。
  • 选择“保存”保存设置。


在这里插入图片描述
启用此设置后,将在 Azure Active Directory (Azure AD) 中创建新的服务标识,并将其配置到应用服务主机中

被访问的服务(存储,队列等)

配置访问控制(IAM),进行角色分配
在这里插入图片描述

官网
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-managed-service-identity

托管标识术语

  • 客户端ID - Azure AD生成的唯一标识符,在其初始预配期间与应用程序和服务主体绑定。
  • 主体ID-托管标识的服务主体对象的对象ID,用于授予对Azure资源的基于角色的访问权限。
  • Azure实例元数据服务(IMDS)-一个REST终结点,可供通过Aure资源管理器创建的所有laaS VM使用。该终结点位于已知不可路由的IP地址(169.254.169.254),该地址只能从VM中访问。

在Azure AD中注册和管理应用程序

Azure AD应用程序管理

Azure AD应用程序管理 比喻:提供一个界面,将所有应用程序快捷方式放到这个界面

Azure AD是一个标识和访问管理(IAM)系统。它提供了一个用于存储数字标识相关信息的单一位置。你可以将软件应用程序配置为使用Azure AD来作为存储用户信息的位置。
Azure AD必须配置为与应用程序相集成。换句话说,它需要知道哪些应用程序正在将它用作标识系统。使Azure AD意识到这些应用程序的存在以及应如何处理它们的过程称为"应用程序管理"。

Azure AD应用程序管理存在的目的是为了单一登录(SSO)

单一登录意味着用户无需登录使用的每个应用程序。用户登录一次,该凭据也可用于其他应用。
如果你是最终用户,可能并不关心SSO的详细信息。你只想使用能提高工作效率而无需频繁输入密码的应用。可在以下位置找到应用:https://myapps.microsoft.com 。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建第一个密钥保管库证书

在这里插入图片描述

创建第一个密钥保管库证书

步骤 1 - 证书颁发机构 (CA) 提供程序

  • 作为 IT 管理员、PKI 管理员或任何管理 CA 帐户的人员,为给定公司(例如 Contoso)载入是使用密钥保管库证书的先决条件。
  • 以下 CA 是当前与密钥保管库合作的提供商。在此处了解更多信息
    1:DigiCert - Key Vault 提供带有 DigiCert 的 OV TLS/SSL 证书。
    2:GlobalSign - Key Vault 提供带有 GlobalSign 的 OV TLS/SSL 证书。

步骤 2 - CA 提供商的帐户管理员创建供密钥保管库使用的凭据,以便通过密钥保管库注册、续订和使用 TLS/SSL 证书。

步骤 3 - Contoso 管理员以及拥有证书的 Contoso 员工(密钥保管库用户)可以从管理员或直接从 CA 的帐户获取证书。具体取决于 CA。

使用与密钥保管库合作的 CA 创建证书

在这里插入图片描述

步骤 4 - 以下说明对应于上图中绿色编号的步骤。
(1) -在上图中,应用程序正在创建一个证书,该证书从内部开始,在密钥库中创建密钥。
(2) -密钥保管库向CA发送TLS/SSL证书请求。
(3) -您的应用程序在循环等待过程中轮询密钥库以完成证书。密钥库收到CA对x509证书的响应时,证书创建完成。
(4) -CA使用X509 TLS/SSL证书响应密钥库的TLS/SSL证书请求。
(5) -新证书的创建随着CA的X509证书的合并而完成。

使用未与密钥保管库合作的 CA 创建证书

在这里插入图片描述
以下步骤说明与上图中的绿色字母步骤相对应。
(1) -在上图中,您的应用程序正在创建证书,该证书从内部开始,在密钥库中创建密钥。
(2) -密钥库会向应用程序返回证书签名请求certificate signing request(CSR)
(3) -您的应用程序将CSR传递给您选择的CA。
(4) -您选择的CA以X509证书响应。
(5) -您的应用程序通过合并CA的X509证书来完成新证书的创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值