作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个存储帐户并向 azure devops 管道服务连接的服务主体添加角色分配 - 以便它能够读取 Blob 存储中的文件。
我的注册表中已经有一个二头肌模块,用于创建存储帐户 - 该模块使用得很好,所以这不是问题。
我的二头肌是:
var storageAccountName = 'st${baseResourceNameAlpha}'
module storageAccount 'br:urlhere.azurecr.io/bicep/modules/storageaccount:v22.10.03.02' = {
name: 'storageAccountDeployment'
params: {
name: storageAccountName
}
}
resource storageAc 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
name: storageAccountName
}
//corrected blobReaderRole thanks to comment from Thomas
// var blobReaderRole = '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1'
var blobReaderRole = subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')
var principalId = 'principal id of my dev ops svc conn'
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
scope: storageAc
name: guid(storageAc.id, principalId, blobReaderRole)
properties: {
roleDefinitionId: blobReaderRole
principalId: principalId
principalType: 'ServicePrincipal'
}
}
这会产生以下错误:
BadRequestFormat The request was incorrectly formatted
有人看出我做错了什么吗?
此外,目前我从 Azure 门户的企业应用程序页面获取 svc 连接的主体 ID。 Get-AzADUser -UserPrincipalName 似乎不适用于服务主体。还有别的办法吗?
最佳答案
roleDefinitionId
属性需要是角色定义的 resourceId
:
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')
此外,principalId
属性需要是服务主体的 objectId,而不是应用程序的 objectId。你无法真正使用纯二头肌/ ARM 来获得它。关于此有一个悬而未决的问题:
在部署二头肌模板之前,您始终可以使用 Az CLI 或 Az Powershell 查找它并将其作为模板的参数传递:
$appId = (az account show | ConvertFrom-Json).user.name
$principalId = (az ad sp show --id $appId | ConvertFrom-Json).id
关于Azure 角色分配 - BadRequestFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74321138/
我想创建一个存储帐户并向 azure devops 管道服务连接的服务主体添加角色分配 - 以便它能够读取 Blob 存储中的文件。 我的注册表中已经有一个二头肌模块,用于创建存储帐户 - 该模块使用
我想创建一个存储帐户并向 azure devops 管道服务连接的服务主体添加角色分配 - 以便它能够读取 Blob 存储中的文件。 我的注册表中已经有一个二头肌模块,用于创建存储帐户 - 该模块使用
我是一名优秀的程序员,十分优秀!