powershell - 设置开发人员对 Azure 资源的访问权限的最佳实践

标签 powershell azure

我想了解管理开发人员对客户订阅的资源子集的访问的最佳实践是什么?

我搜索了 Google 和 Azure 文档来寻找明确的答案,但我还没有找到一篇将所有内容整合在一起的文章。由于 Azure 仍在快速发展,我经常发现很难确定某篇特定文章是否仍然相关。

总结一下我们的情况:

我的任务是为我们公司为客户开发的网站研究和实现 Azure 基础架构。目前,我们的经理和我可以通过服务管理员的凭据访问 Azure 门户上客户的整个订阅,即使我们只进行管理:

  1. 运行 Web 角色的 Azure 云服务(具有生产和暂存环境的 2 个实例)。
  2. Azure SQL 数据库。
  3. 用于部署、诊断等的 Azure Blob 存储。

我们现在正进入一个阶段,团队中的更多开发人员将需要访问权限来执行维护类型的任务,例如执行 VIP 交换、检索诊断信息等。

管理开发人员对此类项目的访问的正确方法是什么?

我采取的方法是实现基于角色的访问控制 ( https://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-configure/ )

  1. 根据 http://blog.kloud.com.au/2015/03/24/moving-resources-between-azure-resource-groups/ 将上述 1、2 和 3 移至新的资源组中
  2. 为我们公司创建一个新的用户组,例如“GroupXYZ”。
  3. 将“GroupXYZ”添加到贡献者角色。
  4. 将特定开发者的公司帐户添加到“GroupXYZ”

采取基于角色的方法的动机

  1. 据我了解,为每个人提供共同管理员访问权限意味着他们对门户中的每个订阅拥有完全访问权限。
  2. 基于帐户的身份验证优于基于证书的身份验证,因为管理证书会增加复杂性。

令我质疑我的方法的原因是我无法使用 PowerShell 对云服务执行 VIP 交换;我收到一条错误消息,指出找不到证书。

此类基于角色的帐户是否只能通过资源管理器 Commandlet 访问 Azure?

在访问 Move-AzureDeployment commandlet 之前,我必须将 PowerShell 切换到 Azure 服务管理器 (ASM) 模式。

我不确定的另一件事是,在使用基于角色的访问控制时,Visual Studio 是否有权访问这些资源(在资源组中)。

最佳答案

当您将 RBAC 应用于 Azure 时,或者只是一般情况下,通过 RBAC 授予对帐户的访问权限,那么这些帐户只能通过 Azure 资源管理器 API 访问 Azure,无论是 PowerShell、REST 还是 VS。

使用 2.7 SDK 时,VS 2015 可以通过 RBAC 访问 Azure 资源。 VS 2013 很快就会支持它。

关于powershell - 设置开发人员对 Azure 资源的访问权限的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31948693/

相关文章:

powershell - 重新启动 IIS6 应用程序池 - ADSI 错误

c# - Azure 服务总线消息泵真的是事件驱动的吗?

powershell - 使用 get-childItem 进行 PSRemoting 性能开销

function - 为什么我在 PowerShell 中看不到脚本的参数?

rest - 我想使用 azure storage api 列出容器内的所有子文件夹

c# - 是否可以在运行时传递Azure Function ServiceBusTrigger连接

azure - 使用 ARM 模板将用户分配的身份分配给 AKS 群集

azure - 无法从 Visual Studio 2019 Web 部署到 Linux 应用服务

azure - 如何使用 Microsoft 图表和 PowerShell 过滤登录并获取特定用户的身份验证要求?

csv - 通过过滤合并CSV文件