You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OCI管理员用户调用API登录失败问题求助

OCI跨域管理员用户执行Python脚本时身份服务404权限问题

问题描述

  • 使用Python脚本获取OCI全量资源时,租户用户可正常运行,但test-domain域的管理员用户testadmin执行时触发身份服务错误:

    'target_service': 'identity', 'status': 404, 'code': 'NotAuthorizedOrNotFound'

  • 报错触发代码(第177行):
    user = identity.get_user(config["user"]).data
    
  • 环境架构信息:
    • Compartments:ROOT、C2
    • ROOT包含2个域:Default、test-domain
    • C2包含1个域:Default
    • Default域用户:tenancyUser、defaultadmin
    • test-domain域用户:testadmin
  • 对比测试:DEFAULT域内加入Administrators组的用户可正常运行脚本。

解决方案

1. 核心原因

OCI的域(Domain)具备权限隔离特性:test-domain的本地管理员权限仅覆盖该域内资源,无法默认访问租户级(跨域)的身份服务资源,而get_user接口需要租户级的身份数据访问权限。

2. 租户级策略配置

在ROOT Compartment下添加以下策略,授予testadmin(或其所在组)跨域访问身份服务的权限:

# 若授权组(需先在test-domain创建对应管理员组)
Allow group test-domain/TestAdminGroup to inspect users in tenancy
Allow group test-domain/TestAdminGroup to inspect domains in tenancy

# 若直接授权用户
Allow user test-domain/testadmin to inspect users in tenancy
Allow user test-domain/testadmin to inspect domains in tenancy
  • 权限说明:inspect是满足get_user查询操作的最小权限,若脚本需更多身份服务操作,可替换为use或manage。

3. 配置文件校验

确保脚本使用的OCI配置文件中,user参数填写的是testadmin的完整OCID,而非仅用户名。跨域场景下,仅用户名无法让SDK正确定位到目标域的用户资源。

4. 组权限确认

验证testadmin所在的组是否真的具备test-domain的本地管理员权限,同时确认租户级策略已正确关联该用户/组。

内容的提问来源于stack exchange,提问作者AhmadH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:52:20