如何为容器注册表Azure创建只读访问项

如何为容器注册表Azure创建只读访问项,azure,acr,Azure,Acr,我使用Azure上的基本帐户类型 我有:一个只有一个访问键(Admin-one)的私有注册表 我希望:能够创建更多具有只读(acrpull)访问权限的访问密钥 问题:我的理解正确吗:这是不允许的(仅在保费账户中) 难道没有办法只在基本帐户上创建另一个具有acrpull访问权限的令牌吗 当然,你可以。它使用服务主体进行身份验证。您需要为ACR创建一个分配了角色acrpull的服务主体 以下是使用CLI命令的示例脚本: #!/bin/bash # Modify for your environme

我使用Azure上的基本帐户类型

我有:一个只有一个访问键(Admin-one)的私有注册表

我希望:能够创建更多具有只读(acrpull)访问权限的访问密钥

问题:我的理解正确吗:这是不允许的(仅在保费账户中)

难道没有办法只在基本帐户上创建另一个具有acrpull访问权限的令牌吗


当然,你可以。它使用服务主体进行身份验证。您需要为ACR创建一个分配了角色acrpull的服务主体

以下是使用CLI命令的示例脚本:

#!/bin/bash

# Modify for your environment.
# ACR_NAME: The name of your Azure Container Registry
# SERVICE_PRINCIPAL_NAME: Must be unique within your AD tenant
ACR_NAME=<container-registry-name>
SERVICE_PRINCIPAL_NAME=acr-service-principal

# Obtain the full registry ID for subsequent command args
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)

# Create the service principal with rights scoped to the registry.
# Default permissions are for docker pull access. Modify the '--role'
# argument value as desired:
# acrpull:     pull only
# acrpush:     push and pull
# owner:       push, pull, and assign roles
SP_PASSWD=$(az ad sp create-for-rbac --name http://$SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query password --output tsv)
SP_APP_ID=$(az ad sp show --id http://$SERVICE_PRINCIPAL_NAME --query appId --output tsv)

# Output the service principal's credentials; use these in your services and
# applications to authenticate to the container registry.
echo "Service principal ID: $SP_APP_ID"
echo "Service principal password: $SP_PASSWD"
#/bin/bash
#根据您的环境进行修改。
#ACR_NAME:Azure容器注册表的名称
#服务\u主体\u名称:在您的广告租户中必须是唯一的
ACR_名称=
服务\u主体\u名称=acr服务主体
#获取后续命令参数的完整注册表ID
ACR_注册表_ID=$(az ACR show——名称$ACR_名称——查询ID——输出tsv)
#创建权限范围为注册表的服务主体。
#默认权限用于docker pull访问。修改“--role”
#所需的参数值:
#牵引:仅牵引
#推:推和拉
#所有者:推、拉和分配角色
SP_PASSWD=$(az ad SP为rbac创建--名称http://$SERVICE\u PRINCIPAL\u name--作用域$ACR\u注册表\u ID--角色acrpull--查询密码--输出tsv)
SP_APP_ID=$(az ad SP show--ID http://$SERVICE_PRINCIPAL_NAME--query appId--output tsv)
#输出服务主体的凭证;在您的服务和服务中使用这些
#要对容器注册表进行身份验证的应用程序。
echo“服务主体ID:$SP\u应用程序ID”
echo“服务主体密码:$SP_PASSWD”

您可以在中获得更多详细信息,也可以在查看时根据需要选择合适的角色。

当然可以。它使用服务主体进行身份验证。您需要为ACR创建一个分配了角色acrpull的服务主体

以下是使用CLI命令的示例脚本:

#!/bin/bash

# Modify for your environment.
# ACR_NAME: The name of your Azure Container Registry
# SERVICE_PRINCIPAL_NAME: Must be unique within your AD tenant
ACR_NAME=<container-registry-name>
SERVICE_PRINCIPAL_NAME=acr-service-principal

# Obtain the full registry ID for subsequent command args
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)

# Create the service principal with rights scoped to the registry.
# Default permissions are for docker pull access. Modify the '--role'
# argument value as desired:
# acrpull:     pull only
# acrpush:     push and pull
# owner:       push, pull, and assign roles
SP_PASSWD=$(az ad sp create-for-rbac --name http://$SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query password --output tsv)
SP_APP_ID=$(az ad sp show --id http://$SERVICE_PRINCIPAL_NAME --query appId --output tsv)

# Output the service principal's credentials; use these in your services and
# applications to authenticate to the container registry.
echo "Service principal ID: $SP_APP_ID"
echo "Service principal password: $SP_PASSWD"
#/bin/bash
#根据您的环境进行修改。
#ACR_NAME:Azure容器注册表的名称
#服务\u主体\u名称:在您的广告租户中必须是唯一的
ACR_名称=
服务\u主体\u名称=acr服务主体
#获取后续命令参数的完整注册表ID
ACR_注册表_ID=$(az ACR show——名称$ACR_名称——查询ID——输出tsv)
#创建权限范围为注册表的服务主体。
#默认权限用于docker pull访问。修改“--role”
#所需的参数值:
#牵引:仅牵引
#推:推和拉
#所有者:推、拉和分配角色
SP_PASSWD=$(az ad SP为rbac创建--名称http://$SERVICE\u PRINCIPAL\u name--作用域$ACR\u注册表\u ID--角色acrpull--查询密码--输出tsv)
SP_APP_ID=$(az ad SP show--ID http://$SERVICE_PRINCIPAL_NAME--query appId--output tsv)
#输出服务主体的凭证;在您的服务和服务中使用这些
#要对容器注册表进行身份验证的应用程序。
echo“服务主体ID:$SP\u应用程序ID”
echo“服务主体密码:$SP_PASSWD”

您可以在中获得更多详细信息,也可以在查看时根据需要选择适当的角色。

您有azure广告?不,我没有AZ广告用户列表-它显示了一个用户,所以我认为我有它-很可能是您有azure广告的基本角色?不,我没有AZ广告用户列表-它显示了一个用户,所以我想我实际上有它-很可能是最基本的一个