GitLab对象存储配置报错403:使用Azure Access Key无法上传附件
GitLab配置Azure对象存储403权限错误排查
问题描述
我通过docker-compose配置GitLab对接Azure对象存储,配置代码如下:
gitlab_rails['object_store']['connection'] = { 'provider' => 'AzureRM', 'azure_storage_account_name' => '<AZURE STORAGE ACCOUNT NAME>', 'azure_storage_access_key' => '<AZURE STORAGE ACCESS KEY>', 'azure_storage_domain' => '<AZURE STORAGE DOMAIN>', }
尝试发送附件时触发403权限错误:
Fog::AzureRM::CustomAzureCoreHttpError (AuthorizationFailure (403): This request is not authorized to perform this operation. RequestId:26f7468a-801e-0013-5bd4-d2e361000000 Time:2023-08-19T19:35:37.8519239Z):
当前Blob存储为私有模式,使用Access Key进行认证。
排查与解决方案
- 校验Access Key权限:确保该Access Key对应的存储账户拥有
Storage Blob Data Contributor角色权限,私有容器下上传、写入操作必须依赖该权限。 - 确认Access Key准确性:检查配置中的
azure_storage_access_key是否完全匹配Azure门户中的密钥,注意大小写、特殊字符,建议直接复制粘贴避免手动输入错误。 - 核查容器权限:确认GitLab要操作的目标容器已创建,且该Access Key对应的账户对该容器具备读写权限。
- 核对存储域名:
azure_storage_domain需匹配Azure存储账户的官方域名(如blob.core.windows.net),若使用自定义域名,需确保DNS解析正确且Azure端已完成自定义域名配置。 - 检查网络访问策略:确认GitLab服务器IP已加入Azure存储账户的防火墙允许列表,同时GitLab所在网络没有防火墙或安全组规则阻断与Azure存储服务的通信。
内容的提问来源于stack exchange,提问作者Solaire
相关产品推荐
相关产品推荐

