azure - Azure 部署槽 - 向槽添加权限
问题描述
我们有一个 Azure 数据库同步组,它有时需要由应用程序启动 - 例如,用户做了一些需要将数据从一个数据库同步到另一个数据库的事情(通常是添加一个新用户)。
通过将机器的身份 GUID 添加到适当的 SQL Server 角色,我们已授予 Web 应用程序(使用托管服务身份)启动此同步的权限 - 这很有效。
之后,我们在 Staging 和 Prod 服务器上创建了部署槽 - 虽然根站点仍然可以工作,但在部署槽中运行的应用程序会抛出异常,指出它没有启动同步的权限。
我找不到任何文档来获取部署槽(又名 Bar)的对象 ID(实际 GUID)以添加到此语句中:
az role assignment create --role "SQL Server Contributor" --assignee-object-id "Bar" --resource-group Foo
编辑:我没有在插槽上手动设置身份,也没有在根应用程序上 - 我刚刚打开 MSI 并试图发现身份。老实说,如果它能够与根应用程序相同,那就没问题了。
我敏锐地意识到 SQL Server Contributor 是授予 Web 服务器的巨大权限,但它似乎是我可以授予实际有权启动数据库同步的服务器的最低权限。
解决方案
您必须在插槽上启用托管标识。它在 AAD 中创建了一个单独的身份。
您可以在 Azure Active Directory 的企业应用程序下找到它。只需确保将过滤器设置为所有应用程序。
推荐阅读
- git - git:相当于“git add -u”和“git rm”
- apache-spark - 使用 spark 删除 hive 数据库时出现 AnalysisException
- python - 在同一个 docker 镜像中添加 cronjob 和 flask 服务器
- loops - 从向量中删除相邻值
- c# - 如何在运行时更改 Process.Start 的目标?
- android - 使用 MvvmCross 和 FFImageLoading 的 Xamarin Android 可见性绑定问题
- java - 修复,使显示可以同时显示十进制数和整数 java
- reactjs - 路由刷新页面时显示空白页
- python - “?”在哪里?用于服务器端参数绑定的 Snowflake SQL 查询中的字符?
- javascript - 前端授权几乎总是不安全的。你不同意吗?