azCopy是否支持mTLS?咨询无需服务主体实现mTLS的方案
关于azCopy通过mTLS访问Azure Blob Storage的问题解答
问题1:指定命令是否必须搭配服务主体实现mTLS?
是的,你提到的azcopy login --service-principal --certificate-path ... --application-id ...这条命令必须依赖服务主体。这里的客户端证书是用来认证服务主体身份的,属于服务主体认证流程的一部分,并非直接用于mTLS的双向证书验证。
问题2:无需服务主体实现mTLS通信的方法
要在不使用服务主体的前提下让azCopy通过mTLS连接Azure Blob Storage,需要从两方面配置:
1. 开启Azure Storage账户的mTLS强制验证
首先要在Azure存储账户的网络设置中,启用要求客户端使用证书进行TLS验证的选项,确保存储服务只接受来自携带合法客户端证书的请求。
2. 使用azCopy的证书参数进行mTLS连接
当存储账户开启mTLS强制后,你可以通过两种无服务主体的方式实现连接:
方式一:Azure AD用户身份+客户端证书登录
如果你的环境支持Azure AD用户认证,可通过以下命令登录,同时指定用于mTLS的客户端证书:
azcopy login --certificate-path /path/to/client-cert.pfx [--certificate-password <cert-password>]
登录后执行复制命令时,azCopy会自动携带该证书完成mTLS双向验证。
方式二:存储账户密钥/SASToken+客户端证书参数
如果你使用存储账户的访问密钥或SASToken认证,可以直接在复制命令中指定mTLS客户端证书,跳过登录步骤:
azcopy copy "/local/file/path" "https://<storage-account>.blob.core.windows.net/<container>/<blob-path>?<sas-token-or-account-key>" --mtls-cert-path /path/to/client-cert.pfx [--mtls-cert-password <cert-password>]
这里的--mtls-cert-path参数专门用于指定mTLS所需的客户端证书,无需关联服务主体。
内容的提问来源于stack exchange,提问作者SuttyHoo
相关产品推荐
相关产品推荐

