在使用Azure托管服务身份,AKS,AAD和密钥库时。是否所有这些资源都必须位于相同的订阅/资源组或VNET中

时间:2018-07-05 09:18:00

标签: azure architecture azure-active-directory azure-api-management azure-aks

基本上我在这里有一个设置

  • Hub-Spoke订阅和azure中的vnet拓扑。
  • 针对内部用户和开发人员访问的AAD,针对外部用户的b2c 用户。
  • AAD和Keyvault在HUB订阅/ VNET中。
  • 在Azure AKS群集中部署的API在分支订阅中。
  • 在相同的API前面也有API Management 订阅和VNET作为AKS / API,因此在Spoke订阅中

鉴于上述设置,我有这些问题

  1. 是否需要所有API,API管理,Keyvault和Azure AD 绑定到相同的订阅,或者我可以在中心中拥有Keyvault 订阅中的订阅和其他服务。
  2. 我们是否将每个API作为与应用程序相同的AAD注册为应用程序 KEYVAULT还是我们可以仅注册API管理并使用API 管理层以获取秘密。
  3. 即使组件位于以下位置,我们也可以使用托管服务标识吗? 不同的订阅但已在同一Azure AD中注册

1 个答案:

答案 0 :(得分:0)

Azure中的身份验证是在租户级别完成的,因此,假设您不对Key Vault使用高级服务(ARM访问,VM加密等),则可以将Key Vault置于一个订阅中,并从MSI中对其进行访问。差异订阅-只要您向MSI用户授予密钥库的权限即可。

只要您授予对资源的权限,AAD就几乎不了解订阅(订阅基本上是您可以授予特权的一大资源)

编辑以阐明高级访问策略

密钥库有三种高级访问策略。

  • enabledForDeployment
  • enabledForDiskEncryption
  • enabledForTemplateDeployment

enabledForTemplateDeployment策略仅在您从ARM模板部署中读取机密时适用。也就是说,如果您是直接从Key Vault传递VM密码。

对于您的情况,如果这是必需的,那么您可以简单地将它们放置在同一预订中的其他密钥库中。