我正在尝试弄清楚 Azure CLI 的登录方式。我已经使用以下命令登录:
az login
一切似乎都运行正常,但是当我尝试运行任何其他命令时,例如:
az storage blob list --container-name my_container
报告称:
缺少访问存储服务的凭据。
我对 Azure 的凭证和登录名的工作方式感到很困惑。由于访问令牌已通过登录授予,那么所有其他命令是否无需进一步身份验证即可正常工作?如果不是,那么登录有什么意义?
答案1
您的az storage blob list --container-name my_container
cmdlet 不完整,当您在 Azure shell 中运行该命令时,它会抛出以下错误消息。我知道缺少凭据消息可能会引起混淆,因为这不是必需的,但如果您查看列表中的数字 3,您会发现您需要为给定的容器提供存储帐户名称。
缺少访问存储服务的凭据。接受以下变体:
- 账户名称和密钥(--account-name 和 --account-key 选项或设置 AZURE_STORAGE_ACCOUNT 和 AZURE_STORAGE_KEY 环境变量)
- 帐户名称和 SAS 令牌(--sas-token 选项与 --account-name 选项或 AZURE_STORAGE_ACCOUNT 环境变量一起使用)
- 账户名称(--account-name 选项或 AZURE_STORAGE_ACCOUNT 环境变量;这将使用登录凭据调用来查询存储账户密钥)
- 连接字符串(--connection-string 选项或设置 AZURE_STORAGE_CONNECTION_STRING 环境变量);某些 shell 将需要引用来保留文字字符解释。
使用适当的容器名称和存储帐户名称尝试以下操作:
az storage blob list --container-name CONTAINER_NAME --account-name STORAGE_ACCOUNT_NAME