本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 AMS 中对 AMS 自动 IAM 配置进行运行时检查
自动化 IAM 配置利用来自 AMS 边界策略的检查 AWS Identity and Access Management Access Analyzer,并根据 AMS 边界策略执行额外的检查和验证。AMS 基于 IAM 最佳实践、在云端操作客户工作负载的经验以及 AMS IAM 手动评估的集体经验,定义了额外的检查和验证。
您可以在更改请求 (RFC) 输出中查看策略运行时检查结果。调查结果包括资源标识符、生成调查结果的角色 and/or 策略中的位置,以及一条概述 IAM 实体或资源未能通过检查的消息。这些发现可帮助您制定功能齐全且符合安全最佳实践的策略。
注意
自动 IAM 配置会尝试具体说明未能通过检查的实体或策略定义中的位置。根据类型,该位置可能包括资源名称、ARN 或数组内的索引。例如,一份可帮助您调整实体或政策以取得成功结果的声明。
为了获得流畅的 AMS 自动 IAM 配置体验,最佳做法是使用 “仅验证” 选项来运行验证检查,直到 RFC 输出中没有报告验证检查的结果。当验证检查未报告任何发现结果时,选择从 AMS 控制台创建副本以快速创建现有 RFC 的副本。准备好配置后,在 “参数” 部分中,将 “仅验证” 值从 “是” 切换为 “否”,然后继续。
以下是 AMS 自动 IAM 配置为确保您的 IAM 资源安全而执行的运行时检查:
注意
要配置包含这些自动变更类型拒绝的操作的 IAM 策略,您必须遵循 RFC 客户安全风险管理 (CSRM) 流程。使用以下更改类型:部署 | 高级堆栈组件 | 身份和访问管理 (IAM) Management (IAM) | 创建实体或策略(需要审查)(ct-3dpd8mdd9jn1r)。
IAM Access Analyzer 策略检查和验证:另请参阅访问分析器策略检查参考和 IAM Access Analyzer 策略验证。
AMS 权限边界策略检查:对一组默认情况下被拒绝的服务的操作。有关更多信息,请参阅 IAM 自动配置权限边界检查。
客户定义的权限边界策略检查:对一组被拒绝的服务执行其他受限操作。有关更多信息,请参阅 IAM 自动配置权限边界检查。
AMS 定义的自定义检查:用于识别所请求的 IAM 实体或策略中的各种不安全和过于宽松的策略或访问模式的检查,如果找到则拒绝请求。有关信息,请参阅 AWS JSON 策略元素:委托人。
| 调查发现 | 说明 |
|---|---|
可以从您信任区域之外的外部账户访问该角色。 |
此发现指的是角色信任策略中列出的委托人,该委托人位于您的信任区域之外。信任区域定义为创建角色的账户或该账户所属的 AWS 组织。不属于该账户或同一 AWS 组织的实体是外部实体。要解决此问题,请查看委托 ARNs 人中的账户 ID,确保它们属于您并且是 AMS 已注册账户。 |
该角色可由不属于 AMS 客户所有账户 |
如果角色信任策略包含一个不属于您的账户 ID 的委托人 ARN 和一个 AMS 已注册账户,则会生成此结果。要解决此问题,请从角色信任策略中删除任何此类委托人。 |
规范用户 ID 不是 IAM 信任策略中支持的委托人。 |
IAM 信任策略 IDs 不支持规范委托人。要解决此问题,请从角色信任策略中移除任何此类委托人。 |
您信任区域之外的外部 Web 身份可以访问该角色。 |
如果角色信任策略允许 SAML IdP 以外的外部 Web 身份提供商 (IdP),则会生成此结果。要解决此问题,请查看角色信任策略并删除允许该 |
可以通过 SAML 联合访问该角色;但是,所提供的 SAML 身份提供商 (IdP) 不存在。 |
如果角色信任策略包含您的账户中不存在的 SAML IdP,则会生成此结果。要解决此问题,请确保您的账户中存在所有列出的 SAML IdP。 |
策略包含等同于管理员或高级用户访问权限的特权操作。考虑将权限范围缩小到特定的服务、操作或资源。如果使用高级策略元素(例如NotAction或 NotResource),请确保它们授予的访问权限不会超出您的预期,尤其是在 Allo w 语句中。 |
在 AWS Identity and Access Management 使用 IAM 策略设置权限时,仅授予执行任务所需的权限是最佳安全实践。通过定义在特定条件下可以对特定资源采取的操作(也称为最低权限权限)来实现此目的。当自动化检测到策略授予广泛权限且不符合最小权限原则时,就会生成此发现。要解决调查结果,请查看并减少权限。 |
语句包含的权限操作 |
AMS 认为某项服务的某些行为存在风险,需要客户安全团队进行进一步的风险审查和接受。当自动化检测到授予此类权限的给定策略时,就会生成此结果。要解决此问题,请在您的政策中拒绝这些操作。有关操作列表,请参阅 AMS 边界策略。有关 AMS 边界策略的详细信息,请参阅AMS 自动化 IAM 配置权限边界检查。 |
声明允许访问特权 RFC 变更类型:ct-1n9gfnog5x7fl、ct-1e0xmuy1diafq 和 ct-17cj84y7632o6 进行服务。 |
如果策略授予使用自动 IAM 配置更改类型 () CTs 执行 RFC 相关操作的权限,则会生成此结果。 CTs 它们需要接受风险,并且只能通过已上岗的角色使用。因此,你不能向它们授予权限 CTs。要解决此问题,请拒绝使用这些 CTs操作的 RFC 操作。 |
语句包含的特权操作,这些操作不限于您的服务 |
如果策略授予的权限操作不限于给定服务的资源,则会生成此结果。通配符通常会创建过于宽松的策略,从而将一系列资源或操作纳入权限的范围。要解决此问题,要么缩小您拥有的资源的权限范围,要么排除 AMS 命名空间中的资源。有关 AMS 命名空间前缀的列表,请参阅 AMS 文档中的边界策略。请注意,并非所有前缀都适用于所有服务。有关 AMS 边界策略的详细信息,请参阅AMS 自动化 IAM 配置权限边界检查。 |
账户 ID 或亚马逊资源名称 (ARN) 无效。 |
如果策略或角色信任策略中指定的任何 ARN 或账户 ID 无效,则会生成此结果。要查看有效资源 ARN 的服务资源,请参阅服务授权参考。确保账户 ID 为 12 位数字,并且该账户处于活动状态。 AWS |
在 ARN 中限制使用通配符 (*) 作为账户 ID。 |
如果在 ARN 的账户 ID 字段中指定了通配符 (*),则会生成此结果。账户 ID 字段中的通配符与任何账户匹配,并可能授予对资源的非预期权限。要解决此问题,请将通配符替换为特定的账户 ID。 |
指定的资源账户不属于同一 AMS 客户拥有的账户 |
如果资源 ARN 中指定的账户 ID 不属于您且不由 AMS 管理,则会生成此结果。要解决这个问题,请确保所有资源(如其在策略中的 ARN 中指定)都属于由 AMS 管理的账户。 |
角色名称位于 AMS 受限命名空间中。 |
如果您尝试创建名称以 AMS 保留前缀开头的角色,则会生成此结果。要解决此问题,请使用特定于您的用例的角色名称。有关 AMS 保留前缀的列表,请参阅 AMS 保留前缀 |
策略名称位于 AMS 受限命名空间中。 |
如果您尝试创建名称以 AMS 保留前缀开头的策略,则会生成此结果。要解决此问题,请使用特定于您的用例的策略名称。有关 AMS 保留前缀的列表,请参阅 AMS 保留前缀。 |
ARN 中的资源 ID 位于 AMS 受限命名空间中。 |
如果您尝试创建向 AMS 命名空间中的命名资源授予权限的策略,则会生成此结果。要解决此问题,请确保您限制资源的权限或拒绝对 AMS 命名空间中的资源的权限。有关 AMS 命名空间的更多信息,请参阅 AMS 受限命名空间。 |
策略变量大小写无效。将变量更新为 |
如果在错误的情况下尝试创建包含 IAM 全局策略变量的策略,则会生成此结果。要解决此问题,请在策略中对全局变量使用正确的大小写。有关全局变量的列表,请参阅AWS 全局条件上下文键。有关策略变量的更多信息,请参阅 IAM 策略元素:变量和标签 |
语句包含不限于您的 KMS 密钥的特权操作。考虑将这些权限限定为特定的密钥或排除 AMS 拥有的密钥。 |
如果策略包含的权限不限于您拥有的特定 KMS 密钥,则会生成此结果。要解决此问题,请将权限范围限定为特定密钥或排除 AMS 拥有的密钥。AMS 拥有的密钥具有特定的别名集。有关 AMS 拥有的密钥别名的列表,请参阅AMS 自动化 IAM 配置权限边界检查。 |
语句包含不限于 KMS 密钥别名的权限操作。考虑将这些权限限定为您的密钥或别名,或者排除 AMS 拥有的密钥别名。 |
如果策略包含的权限不限于您拥有的特定 KMS 密钥别名,则会生成此结果。要解决此问题,请将权限范围限定为特定密钥或排除 AMS 拥有的密钥。AMS 拥有的密钥具有特定的别名集。有关 AMS 拥有的密钥别名的列表,请参阅AMS 自动化 IAM 配置权限边界检查。 |
语句包含的特权操作,这些操作的范围不够大,仅限于使用的 KMS 密钥。 |
如果您使用条件来限定 KMS 密钥的权限范围,而不是使用将范围缩小 |
该角色必须附有 customer_deny_policy。将策略 ARN 包含在托管策略列表中。 ARNs |
如果您正在创建的角色没有 |
AWS 托管策略过于宽松或授予受 AMS 边界策略限制的权限。 |
如果角色的ManagedPolicyArns值包含任何提供对相关服务的完全或管理员级别访问权限的 AMS 托管策略,则会生成此结果。要解决这个问题,请查看 AWS 托管策略的使用情况,使用提供范围缩小权限的策略,或者根据最低权限原则定义自己的策略。 |
客户托管策略位于受限的 AMS 命名空间中。 |
如果将任何在 AWS 命名空间中以名称为前缀的客户托管策略附加到该角色,则会生成此结果。要解决此问题,请从该角色的ManagedPolicyArn列表中删除该策略。 |
无法将 customer_deny_policy 与角色分离。将策略 ARN 包含在托管策略列表中。 ARNs |
如果在更新期间与 |
客户管理的策略是在 AMS 变更管理服务之外配置的,或者未经事先验证。 |
如果将一个或多个现有的客户托管策略附加到某个角色,并且 ARNs 这些策略不是通过 AMS 变更管理服务(通过 RFC)配置的,则会生成此结果。例如,开发人员模式或直接更改模式允许客户在没有 RFC 的情况下配置 IAM 策略。要解决此问题,请 ARNs 从该角色的ManagedPolicyArns列表中删除客户托管策略。 |
提供的托管策略数量 ARNs 超过每个角色配额的附加策略。 |
如果附加到角色的托管策略总数超过每个角色的策略配额,则会生成此结果。有关 IAM 配额的更多信息,请参阅 IAM 和 AWS STS 配额、名称要求和字符限制。使用此信息来减少您附加到该角色的策略数量。 |
信任策略大小 ({trust_policy}) 超过了假设角色策略大小配额 {size}。 |
如果代入角色策略文档的大小超过策略大小配额,则会生成此结果。有关 IAM 配额的更多信息,请参阅 IAM 和 AWS STS 配额、名称要求和字符限制。 |
声明包含 Amazon S3 的所有变异操作。考虑将这些权限的范围仅限于必需的操作。如果使用通配符,请确保通配符的作用范围有限的一组突变动作。 |
如果给定策略授予所有 Amazon Simple Storage Service 变异权限,而不考虑一个或多个资源,则会生成此结果。要解决此问题,请仅对您的存储桶执行必需的 Amazon S3 突变操作。 |
声明包含不允许对 Amazon S3 中的任何存储桶执行的特权操作。考虑添加一条否认这些操作的声明。 |
如果策略允许对任何存储桶执行特权操作,则会生成此结果。有关特权操作的列表,请参阅AMS 自动化 IAM 配置权限边界检查要解决此问题,请在策略中删除或拒绝这些操作。 |
声明包含不限于 Amazon S3 中存储桶的特权操作。可以考虑包含您的存储桶或排除带有 AMS 命名空间前缀的存储桶。如果使用通配符,请确保它们与您的命名空间中的存储桶相匹配。 |
如果策略授予 Amazon S3 操作的范围不限于您的存储桶,则会生成此结果。如果在指定存储桶资源时使用通配符,则通常会发生这种情况。要解决此问题,请指定存储桶名称或您拥有的存储桶名称 ARNs ,或者排除带有 AMS 命名空间前缀的存储桶。 |
声明包含不限于 Amazon S3 中存储桶的特权操作。考虑避免使用通配符 (*) 来限定账户中所有存储桶的范围。 |
如果策略授予 Amazon S3 操作的范围不限于您的存储桶,则会生成此结果。如果在指定存储桶资源时使用通配符,则通常会发生这种情况。要解决此问题,请指定存储桶名称或您拥有的存储桶名称 ARNs ,或者排除带有 AMS 命名空间前缀的存储桶。 |
语句包含一个资源通配符,其作用域为所有 Amazon S3 存储桶,包括不存在的存储桶和您不拥有的存储桶。考虑使用条件和 |
如果策略向使用通配符指定的存储桶授予权限,则会生成此结果。使用通配符通常会将不存在或非所有者的存储桶置于范围内。要解决这个问题,请使用条件和 |
语句包含一个 |
如果策略利用 |
声明包含 Amazon S3 对不存在、不归账户所有或名称中包含通配符的操作 |
如果策略向不存在、不归您所有或存储桶名称中包含通配符覆盖大量存储分区且访问范围不限于当前账户的存储桶授予权限,则会生成此结果。要解决这个问题,请使用条件和 |
声明包含 Amazon S3 对不存在或不属于账户的存储桶 |
如果策略向不存在、不归您所有或存储桶名称中包含通配符覆盖大量存储桶且访问权限仅限于特定账户的存储桶授予权限,则会生成此结果。但是, |
声明包含不限于您的 Amazon EC2 实例的特权操作。考虑将操作范围限定为特定实例, ARNs 或者排除名称标签键值在 AMS 命名空间前缀中的实例。如果使用通配符,请确保它们与您拥有的命名空间相匹配。 |
如果策略授予对 AMS 拥有的 Amazon EC2 实例的特权操作,则会生成此发现。AMS 实例使用名称标签键进行标记,其值在 AMS 命名空间中。要解决这个问题,请使用 |
语句包含特权操作,这些操作不限于 AWS Systems Manager 参数存储中的资源。考虑指定 ARNs 您的参数或排除带有 AMS 命名空间前缀的参数。如果使用通配符,请确保它们仅限于您的参数。 |
如果策略向不属于您的参数授予权限,则会生成此结果。这通常是使用通配符或在策略声明的资源下列出带有 AMS 命名空间前缀的参数的情况。要解决此问题,请指定命名空间内的参数或使用 deny 语句排除 AMS 参数。 |
语句包含针对中的资源的特权操作 AWS Systems Manager。考虑将权限范围限定为只读操作或针对您的资源的操作。 |
如果策略授予对 Systems Manager 资源的参数存储或只读操作以外的权限,则会生成此结果。要解决此问题,请将权限减少为只读操作或仅限参数存储。 |
语句包含不限于您拥有的 {message} 的特权操作。 |
如果策略允许对您的资源(尤其是命名资源)进行未授予的特权操作,则会生成此结果。要解决此问题,请查看您的资源列表,看看它们是否仅限于命名空间中的资源。或者,排除 AMS 命名空间中的资源。 |
语句包含 { |
如果策略授予给定服务的标记权限,并且该权限不限于特定的标签键/值,则会生成此结果。要缩小标签操作中可以使用的键或值的范围,例如,在请求执行操作时,请使用 |
验证 IAM 角色信任策略时出现内部错误。 |
当 CT 自动化通过 IAM Access Analyzer 服务对 IAM 角色信任策略执行验证时遇到错误时,就会生成此发现。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
验证客户托管策略时出现内部错误。 |
当 CT 自动化通过 IAM Access Analyzer 服务对客户托管策略执行验证时遇到错误时,就会生成此发现。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
在中找不到访问分析器 |
此发现是在中找不到 IAM 访问分析器资源时生成的 AWS 区域。联系 AMS 运营部门在 AWS 区域进行故障排除并创建 IAM 访问分析器资源。 |
角色的信任策略无效 |
此发现是在提供的 IAM 角色包含无效的信任策略时生成的。要解决问题,请查看信任策略以验证其是否有效。 |
IAM 访问分析器遇到了内部错误。无法为角色创建访问预览 |
当自动化在通过 IAM Access Analyzer 为角色创建访问预览时遇到错误时,就会生成此发现。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
无法为角色的信任策略创建访问预览 |
当自动化在通过 IAM Access Analyzer 为角色创建访问预览时遇到错误时,就会生成此发现。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
验证列出的 SAML IdP 时出现内部错误。 |
当自动化在验证角色信任策略中 IdPs 列出的提供的 SAML 时遇到错误时,就会生成此发现。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
验证权限时出现内部错误。 AWS Key Management Service |
当自动化在验证所提供的策略中的 AWS KMS 密钥权限时遇到错误时,就会生成此结果。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
验证列出的托管策略 ARNs时出现内部错误。 |
当自动化在验证列出的托管策略 ARNs时遇到错误时,就会生成此结果。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
验证默认 |
当自动化在验证是否已关联到角色时遇到错误时,就会生成此发现。 |
验证角色的托管策略 ARN 时出现内部错误 |
当自动化在验证角色的托管策略 ARNs 时遇到错误时,就会生成此结果。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
根据客户定义的边界策略 |
当自动化在验证包含您的自定义拒绝列表的策略时遇到错误时,就会生成此结果。要解决这个问题,请重新提交 RFC。如果错误仍然存在,请联系 AMS 运营部门解决错误。 |
账户中 |
当包含您的自定义拒绝列表的策略包含授予权限的声明时,就会生成此结果。尽管自定义拒绝列表作为 IAM 托管策略存在于您的账户中,但它不能用于权限管理。该策略必须仅包含拒绝声明,表明您希望 AMS 自动 IAM 配置验证和拒绝 AMS 自动 IAM 配置创建的 IAM 策略中的那些操作。 |
声明包含您的组织为定义的特权操作 |
当自动化检测到您的策略中您在自定义拒绝列表中定义的任何操作时,就会生成此结果。要解决此问题,请查看您的政策声明并删除自定义拒绝列表中定义的所有操作,或者添加拒绝这些操作的拒绝声明。 |
角色必须已 |
如果您正在创建的角色没有 |
|
如果在更新期间与 |