通过 REST 调用的 Azure 容器级 IAM 访问分配
Azure Container level IAM Access assignment by REST call
我正在尝试通过 REST Api 调用为 AD 用户授予对容器的 IAM 访问权限(存储 Blob 数据 Reader)。
我的存储结构是这样的:-订阅>>资源组>>资源(即存储帐户)>>
许多容器 >> 每个容器下有一些 blob
我能够通过 REST 调用为用户(在我的 Active Directory 中)提供 Reader 对 StorageAccount 级别的访问:-
<a href="https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2015-07-01" rel="nofollow noreferrer">https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2015-07-01</a>
<strong>HEADER:</strong>
[{"key":"Content-Type","value":"application/json"}]
[{"key":"Authorization","value":"Bearer Token"}]
<strong>BODY:</strong>
{
"properties":{
"roleDefinitionId": "/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleDefinitions/READER-ACCESS-GUID",
"principalId": "AD-USER-OBJECT-ID"
}
}
请帮助我在存储帐户下的任何特定容器(不是全部)级别为该用户分配一个角色,以便 he/she 可以 read/write 该容器内的任何 blob .
谢谢!
注意:我试过:-
<a href="https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/path/CONTAINER-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2018-07-01" rel="nofollow noreferrer">https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/path/CONTAINER-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2018-07-01</a>
在 Postman 它 returns 状态代码 201 和角色分配的数量在 Azure 门户中显示增加 1,但用户看不到里面的任何 blob容器。
如果您需要更多信息,请帮助或告诉我。
据我了解,您想使用 Azure AD Auth 访问 Azure blob 存储。您需要为用户分配 Azure RABC 角色(例如 Storage Blob Data Reader)。详情请参考https://docs.microsoft.com/da-dk/azure/storage/common/storage-auth-aad
关于如何将tole分配给一个用户休息api,请参考以下步骤
注册 Azure AD 应用程序
配置API权限
在邮递员中调用其余api
一个。获取访问令牌
b。获取角色名称和角色 ID
GET https://management.azure.com/subscriptions/<subscription id>/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName eq '<the role your need such as Storage Blob Data Contributor>'&api-version=2018-01-01-preview
Header:
Authorization: Bearer <token>
c。分配角色
PUT https://management.azure.com/<your scope> /providers/Microsoft.Authorization/roleAssignments/<role name>?api-version=2018-01-01-preview
Header:
Authorization: Bearer <token>
Content-Type: application/json
Body
{ "properties": {
"roleDefinitionId": "<role id>",
"principalId": "<The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.>"
}}
请注意容器作用域应该像subscriptions/<subscription id>/resourceGroups/<group name>/providers/Microsoft.Storage/storageAccounts/<account name>/blobServices/default/containers/<container name>
检查 Storage Explorer. For more details, please refer to the document
一种。 Select Connect 符号打开 Connect to Azure Storage.
b。如果您还没有这样做,请使用添加 Azure 帐户 选项登录到有权访问该资源的 Azure 帐户。登录后,return 到 连接到 Azure 存储。
c。 Select 通过 Azure Active Directory (Azure AD) 添加资源,然后 select Next.
d。 Select 一个 Azure 帐户和租户。这些值必须有权访问要附加到的存储资源。 Select 下一个。
e。选择您要附加的资源类型。输入连接所需的信息。
您在此页面上输入的信息取决于您要添加的资源类型。确保选择正确的资源类型。输入所需信息后,select下一步。
f。查看 连接摘要 以确保所有信息都是正确的。如果是,select 连接。否则,select 返回 至 return 之前的页面以修正任何不正确的信息。
我正在尝试通过 REST Api 调用为 AD 用户授予对容器的 IAM 访问权限(存储 Blob 数据 Reader)。
我的存储结构是这样的:-订阅>>资源组>>资源(即存储帐户)>>
许多容器 >> 每个容器下有一些 blob
我能够通过 REST 调用为用户(在我的 Active Directory 中)提供 Reader 对 StorageAccount 级别的访问:-
<a href="https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2015-07-01" rel="nofollow noreferrer">https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2015-07-01</a>
<strong>HEADER:</strong>
[{"key":"Content-Type","value":"application/json"}]
[{"key":"Authorization","value":"Bearer Token"}]
<strong>BODY:</strong>
{
"properties":{
"roleDefinitionId": "/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleDefinitions/READER-ACCESS-GUID",
"principalId": "AD-USER-OBJECT-ID"
}
}
请帮助我在存储帐户下的任何特定容器(不是全部)级别为该用户分配一个角色,以便 he/she 可以 read/write 该容器内的任何 blob .
谢谢!
注意:我试过:-
<a href="https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/path/CONTAINER-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2018-07-01" rel="nofollow noreferrer">https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/path/CONTAINER-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2018-07-01</a>
在 Postman 它 returns 状态代码 201 和角色分配的数量在 Azure 门户中显示增加 1,但用户看不到里面的任何 blob容器。
如果您需要更多信息,请帮助或告诉我。
据我了解,您想使用 Azure AD Auth 访问 Azure blob 存储。您需要为用户分配 Azure RABC 角色(例如 Storage Blob Data Reader)。详情请参考https://docs.microsoft.com/da-dk/azure/storage/common/storage-auth-aad
关于如何将tole分配给一个用户休息api,请参考以下步骤
注册 Azure AD 应用程序
配置API权限
在邮递员中调用其余api
一个。获取访问令牌
b。获取角色名称和角色 ID
GET https://management.azure.com/subscriptions/<subscription id>/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName eq '<the role your need such as Storage Blob Data Contributor>'&api-version=2018-01-01-preview Header: Authorization: Bearer <token>
c。分配角色
PUT https://management.azure.com/<your scope> /providers/Microsoft.Authorization/roleAssignments/<role name>?api-version=2018-01-01-preview Header: Authorization: Bearer <token> Content-Type: application/json Body { "properties": { "roleDefinitionId": "<role id>", "principalId": "<The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.>" }}
请注意容器作用域应该像
subscriptions/<subscription id>/resourceGroups/<group name>/providers/Microsoft.Storage/storageAccounts/<account name>/blobServices/default/containers/<container name>
检查 Storage Explorer. For more details, please refer to the document 一种。 Select Connect 符号打开 Connect to Azure Storage.
b。如果您还没有这样做,请使用添加 Azure 帐户 选项登录到有权访问该资源的 Azure 帐户。登录后,return 到 连接到 Azure 存储。
c。 Select 通过 Azure Active Directory (Azure AD) 添加资源,然后 select Next.
d。 Select 一个 Azure 帐户和租户。这些值必须有权访问要附加到的存储资源。 Select 下一个。
e。选择您要附加的资源类型。输入连接所需的信息。
您在此页面上输入的信息取决于您要添加的资源类型。确保选择正确的资源类型。输入所需信息后,select下一步。
f。查看 连接摘要 以确保所有信息都是正确的。如果是,select 连接。否则,select 返回 至 return 之前的页面以修正任何不正确的信息。