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

如何判断IAM角色是服务角色?解决服务策略绑定用户报错

判断IAM服务角色的方法

问题场景

为IAM用户davidh38添加服务角色策略(如AccessAnalyzerServiceRolePolicy)时,出现如下报错:

Failed to add permissions to davidh38
Failed to add AccessAnalyzerServiceRolePolicy to user. Cannot attach a Service Role Policy to an IAM user.

请问如何判断一个角色是否为服务角色?

判断方式

  • 查看角色的信任策略:服务角色的核心特征是信任策略的Principal字段指定的是AWS服务(比如access-analyzer.amazonaws.com、ec2.amazonaws.com),而非IAM用户、组或AWS账号。典型的服务角色信任策略示例:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "access-analyzer.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  • 通过IAM控制台识别:在AWS IAM控制台的角色列表或详情页面,服务角色会被明确标记为「服务角色」,部分还会直接显示关联的AWS服务名称。
  • 使用AWS CLI查询:执行命令 aws iam get-role --role-name <目标角色名称>,返回结果里的AssumeRolePolicyDocument字段会包含服务主体信息;另外服务角色的Description字段通常会注明是为特定AWS服务创建的角色。
  • 检查策略本身属性:服务角色策略的名称一般带有ServiceRolePolicy后缀(比如AccessAnalyzerServiceRolePolicy),且策略描述会明确说明它仅能附加到服务角色,无法关联到IAM用户或组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:33:19