# MalformedPolicyDocument：策略中的主体无效：'AWS': 'arn:aws:iam::123456789012:role/MyRole' - ARN 不符合预期格式

- **ID:** `cloud/aws-iam-role-trust-policy-invalid-principal`
- **领域:** cloud
- **类别:** config_error
- **错误码:** `MalformedPolicyDocument`
- **验证级别:** ai_generated
- **修复率:** 92%

## 根因

IAM 角色信任策略包含格式错误的主体 ARN，或错误地使用了服务主体；对于跨账户信任，主体必须是 'AWS': '123456789012'（账户 ID），而不是完整的角色 ARN。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| AWS IAM API 2010-05-08 | active | — | — |
| AWS CLI 2.15.0 | active | — | — |

## 解决方案

1. ```
   将主体更改为账户 ID：'AWS': '123456789012'。示例信任策略片段：{"Effect": "Allow", "Principal": {"AWS": "123456789012"}, "Action": "sts:AssumeRole"}
   ```
2. ```
   如果使用服务主体（例如 EC2），请使用 'Service': 'ec2.amazonaws.com' 而不是 'AWS'。
   ```
3. ```
   使用 AWS CLI 更新信任策略：aws iam update-assume-role-policy --role-name MyRole --policy-document file://trust-policy.json
   ```

## 无效尝试

- **** — The policy is malformed because the principal format is incorrect. (90% 失败率)
- **** — Overly permissive; security audits will flag this. (30% 失败率)
