Azure AD访问Azure Storage

通过Azure AD的service Principal申请access token,可以不使用Azure的Storage Account Key来访问Azure的存储资源。

具体方法如下:

name="whuser01"
sa="hwst"

sub_id=$(az account list --query "[?isDefault]" | jq -r .[].id)

az ad sp create-for-rbac -n $name --role reader --scopes /subscriptions/$sub_id

client_id=$(az ad sp list --display-name $name | jq -r .[].appId)
tenant_id=$(az ad sp list --display-name $name | jq -r .[].appOwnerOrganizationId)


secret="xxxxxxxx"

export token="$(curl -X POST \
    -d "grant_type=client_credentials" \
    -d "client_id=$client_id" \
    -d "client_secret=$secret" \
    -d "resource=https://storage.azure.com/" \
    https://login.microsoftonline.com/$tenant_id/oauth2/token | jq -r .access_token)"

curl --oauth2-bearer "$token" -i \
    -H 'x-ms-version: 2017-11-09' \
    https://$sa.blob.core.windows.net/?comp=list

 

posted @ 2022-07-12 20:19  衡子  阅读(87)  评论(0编辑  收藏  举报