

# 策略评估指南
<a name="temporary-delegation-policy-evaluation-guidelines"></a>

Amazon 将根据一组指南评估您提交的策略。相同的评估指南适用于策略模板和权限边界，但会酌情注明细微的差异。

出于评估目的，我们将服务分为不同的组。最重要的区别在于管理访问权限、凭证和密钥安全敏感型服务。授予对这些服务访问权限的策略需要严格限定于正在进行的工作。安全敏感型服务包括以下服务：Amazon Identity and Access Management（IAM）、Amazon Key Management Service（KMS）、Amazon Resource Access Manager（RAM）、Amazon IAM Identity Center、Amazon Organizations 和 Amazon Secrets Manager。

第二个区别是可以跨账户边界访问数据的服务。这些服务的策略必须包括保护措施，以防止意外的跨账户访问。

## 通用验证
<a name="temporary-delegation-common-validations"></a>

所有策略语句必须遵循以下指南：
+ 所有语句都必须依次包含 Effect、Action（或 NotAction）、Resource 和 Condition 字段
+ 单个语句中的所有操作必须按字母顺序列出
+ 策略中包含的所有 ARN 都必须遵循相关服务公共文档中定义的语法
+ NotAction 字段只能在 Deny 语句中使用
+ Allow 语句中的 Action 必须包含服务代码。不允许使用通用通配符 ("\*")

## 安全敏感型服务限制
<a name="temporary-delegation-security-sensitive-restrictions"></a>

以下限制适用于上述安全敏感型服务：
+ Allow 语句中的 Action 必须比 [service] 更具体：\*
+ 临时访问策略模板的 Allow 语句中的 Action 不得包含通配符
+ iam:PassRole 或 iam:CreateServiceLinkedRole 等敏感操作需要额外的范围限制，例如特定资源或条件检查。这些操作包括：
  + IAM 角色传递
  + IAM 角色修改操作
  + IAM 策略修改操作
  + Amazon KMS 写入或加密操作
  + Amazon RAM 写入或共享操作
  + 用于检索或修改密钥或者修改资源策略的 Amazon Secrets Manager 操作
+ 可能使用通配符资源的其他操作，例如 iam:ListUsers 或 iam:GetPolicy
+ 管理凭证的操作（例如 iam:CreateAccessKey）将被阻止

## IAM 特定限制
<a name="temporary-delegation-iam-specific-restrictions"></a>

对于 IAM：
+ 只允许对 IAM 角色和策略执行有限的写入操作。您无法请求对用户、组和证书等其他 IAM 资源的权限。
+ 策略附件或内联策略管理操作仅限于具有权限边界的角色。权限边界必须由合作伙伴提供，或者位于允许的 Amazon 托管策略列表中。如果 Amazon 托管策略未授予高权限或管理权限，则可能会允许这些策略。例如，针对特定工作职能的 Amazon 托管策略或 SecurityAudit 策略可能可接受。Amazon 将在载入过程中根据具体情况审查每个 Amazon 托管策略。
+ 只允许对具有以下合作伙伴特定路径的策略进行策略管理：arn:aws:iam::@{AccountId}:policy/partner\_domain.com/[feature]\*
+ 标签只能在资源创建期间应用，并且仅用于角色和策略
+ iam:PassRole 检查必须匹配特定名称或路径前缀

## Amazon STS 特定限制
<a name="temporary-delegation-sts-specific-restrictions"></a>

对于 Amazon STS：
+ sts:AssumeRole 必须限定为特定角色 ARN、角色 ARN 前缀，或仅限于一组账户或组织 ID /组织单位

## IAM Identity Center 限制
<a name="temporary-delegation-identity-center-restrictions"></a>

对于 Amazon IAM Identity Center，将阻止以下操作：
+ 所有涉及权限管理的操作（例如，sso:AttachCustomerManagedPolicyReferenceToPermissionSet）
+ Amazon Identity Store 的用户、组和成员资格修改
+ 标签管理

## Amazon Organizations 限制
<a name="temporary-delegation-organizations-restrictions"></a>

对于 Amazon Organizations，只允许读取操作。

## 其他服务特定验证
<a name="temporary-delegation-additional-service-validations"></a>
+ 获取密钥或凭证的操作（例如 glue:GetConnection 或 redshift:GetClusterCredentials）必须包含匹配完整 ARN、ARN 前缀或标签的条件
+ 对于 Amazon Redshift：redshift:GetClusterCredentials 只允许对特定数据库名称使用，而 redshift:GetClusterCredentialsWithIAM 只允许对特定工作组名称使用

**注意**  
管理账户中的 IAM 资源时，我们建议使用包含您名称的路径，例如 arn:aws:iam::111122223333:role/partner.com/rolename。这将有助于区分与您的集成关联的资源，让客户更轻松地进行发现、审计和分析。

## 跨账户访问要求
<a name="temporary-delegation-cross-account-requirements"></a>

可能允许跨账户访问的语句必须至少包含以下各项之一：
+ 指定资源账户或组织的条件（例如，与一个或多个预期值匹配的 aws:ResourceOrgId）
+ 包含特定账户的资源字段（例如，arn:aws:sqs:\*:111122223333:\*）
+ 包含非通配符账户和完整资源名称（例如，arn:aws:s3:::full-bucket-name）的资源字段

**注意**  
跨账户访问是一项敏感功能，需要明确的业务理由。Amazon 将在载入过程中仔细审查是否需要跨账户访问。