本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于资源的策略和资源控制策略控制控制台访问权限
重要
默认情况下,控制台登录访问处于启用状态。 AWS Sign-In 最初允许不受限制地访问控制台。要添加限制,请为您的账户或组织启用控制台授权配置。在启用控制台授权之前,您创建的资源权限声明无效。请参阅使用资源策略进行控制台访问控制入门。
AWS Sign-In 支持基于资源的策略和资源控制策略 (RCP) 来控制访问权限。 AWS Sign-In使用这些策略在整个 AWS 管理控制台 访问过程中(在身份验证之前、期间和之后)验证用户身份和网络位置。对于根用户,这些策略在开始收集凭据之前会验证网络位置和用户身份。仅当访问来自预期网络时,才能输入凭据。
AWS Sign-In 基于资源的策略:
-
适用于个人 AWS 账户。
-
让账户管理员根据网络参数和主体身份限制控制台访问权限。
资源控制策略 (RCP):
-
通过 AWS 组织在组织范围内申请。
-
为所有成员账户提供集中管理。
两种策略类型都会在身份验证之前验证访问权限。这会阻止主体从意想不到的网络访问登录页面。
这些策略不能取代基于 IAM 身份的策略,后者将继续适用。
注意
有关资源控制策略(包括组织级配置和管理)的完整文档,请参阅 AWS 组织用户指南中的资源控制策略。本节主要侧重于 AWS Sign-In 基于资源的政策。
AWS Sign-In 基于资源的策略和 RCP 适用于以下身份验证方法:
-
AWS 管理控制台— 使用控制台登录页面直接登录。
-
联邦身份提供商 — Sign-in 通过 SAML 或 OIDC 联合会。
-
应用程序集成了 AWS Sign-In ——亚马逊连接、亚马逊、 AWS 健康控制面板 QuickSight、亚马逊 AppStream、亚马逊 Lightsail。
注意
通过 IAM Identity Center 门户进行控制台访问目前与根据网络状况密钥限制访问的 AWS Sign-In策略不兼容。启用基于网络的限制将阻止 IAM 身份中心用户的控制台访问权限。
这些控制不适用于使用访问密钥(AWS SDK 或使用 SigV4 签名的 API 调用)进行编程访问。
操作方法 AWS Sign-In 评估基于资源的策略
AWS Sign-In 在控制台访问期间的两个时间点评估适用的基于资源的策略或资源控制策略 (RCP):身份验证之前(预身份验证阶段)和成功身份验证之后(身份验证后阶段)。每次评估都会检查您的策略中定义的条件密钥。可用密钥取决于阶段和操作。有关更多信息,请参阅 支持的条件键。
注意
对于 root 用户登录,在出现密码提示之前,来自意外网络的访问尝试会被阻止。这样可以防止来自意外网络的凭证提交。
身份验证后,评估还会考虑委托人基于身份的政策。拒绝相关登录操作的 IAM 政策可能会阻止控制台会话的授权,即使网络条件得到满足。
支持的操作
AWS Sign-In 资源策略(基于资源的策略和 RCP)支持以下操作:
signin:Authenticate-
这是一项仅限评估(不可调用)的操作,将在收到登录请求时进行评估。这是一种预身份验证检查,当委托人在登录页面(根用户、IAM 用户)输入凭证或使用身份提供商或 AWS STS(联合用户、角色)的证书启动控制台登录时发生。
支持的条件键:
aws:SourceIp、aws:SourceVpc、aws:SourceVpce、aws:VpcSourceIp、aws:RequestedRegion、signin:PrincipalArn。Principal-based 全局条件键 (
aws:PrincipalArn,aws:PrincipalAccount) 不可用于此操作,因为用户的身份尚未得到确认。 signin:AuthorizeOAuth2Access-
用于生成 OAuth 授权码。成功进行身份验证后,系统生成 OAuth 授权码时会触发此操作。此时,用户已通过身份验证,基于主体的条件密钥可用。
支持的条件键:
aws:SourceIp、aws:SourceVpc、aws:SourceVpce、aws:VpcSourceIp、aws:RequestedRegion、aws:PrincipalArn、aws:PrincipalAccount。 signin:CreateOAuth2Token-
此身份验证后操作用于 OAuth 令牌的创建和交换。当使用授权码兑换访问令牌、刷新令牌或执行令牌交换操作时,会触发此操作。 Principal-based 条件键在此阶段可用。
支持的条件键:
aws:SourceIp、aws:SourceVpc、aws:SourceVpce、aws:VpcSourceIp、aws:RequestedRegion、aws:PrincipalArn、aws:PrincipalAccount。
重要
创建 AWS Sign-In 策略(基于资源的策略或 RCP)时,在预身份验证声明signin:AuthorizeOAuth2Access和身份验证后声明signin:Authenticate中涵盖策略signin:CreateOAuth2Token中的所有三项操作。控制台登录使用 OAuth 2.0,它按顺序执行所有三个操作。如果您的策略省略了某项操作,则相应阶段将不受保护。有关 VPC 终端节点策略操作signin:CreateAccount,包括,请参阅 AWS 管理控制台私有访问。
支持的条件键
AWS Sign-In 支持基于资源的策略和资源控制策略 (RCP) 中的以下条件密钥。使用这些密钥根据网络位置和主体身份控制控制台访问权限:
-
Network-based (所有操作):
aws:SourceIp、aws:SourceVpc、aws:SourceVpce、aws:VpcSourceIp、aws:RequestedRegion。 -
Identity-based (身份验证后的操作):
aws:PrincipalArn,aws:PrincipalAccount。 -
Service-specific (仅限预身份验证):
signin:PrincipalArn。
有关详细的使用规则、操作员兼容性、组合限制和按操作划分的可用性矩阵,请参阅AWS Sign-In 条件键参考。
使用资源策略进行控制台访问控制入门
先决条件
-
AWS CLI 已安装并配置。
-
适当的 IAM 权限(请参阅AWS 托管策略: AWSSignInResourcePolicyManagement)。
-
已识别的网络边界(IP 范围、VPC 或 VPC 终端节点)。
-
指定排除在外的委托人保留访问权限(推荐,但可选)。
-
如果您的网络使用出口过滤,请将 AWS Sign-In 控制平面端点列入白名单(参见AWS Sign-In 将管理域列入许可名单)。
重要
在生产环境中启用控制台授权之前, AWS 建议至少配置一个排除的主体以保持紧急恢复访问权限。除非明确排除,否则包括根用户在内的所有委托人都受该政策的约束。排除的委托人是可选的,但如果网络状况意外变化,省略这些委托人会增加账户被封锁的风险。
--region us-east-1为 AWS Sign-In策略上的所有写入操作指定。 AWS 从该区域复制全球政策。读取操作可以针对任何区域。
步骤 1:创建资源权限声明
创建权限声明来定义您的访问控制。所有写入操作都需要--region us-east-1(该 AWS Sign-In 服务仅接受该地区的策略更改)。其余参数(--source-vpc--source-ip、--requested-region、、--excluded-principal)定义策略中的条件。例如,--requested-region us-west-2添加了限制登录到 us-west-2 区域登录终端节点的条件。
示例 — 限制对企业 VPC 的访问:
aws signin put-resource-permission-statement \ --source-vpc vpc-0abc123def456789 \ --requested-region us-west-2 \ --excluded-principal "arn:aws:iam::123456789012:user/EmergencyAdmin" \ --client-token unique-request-id-12345 \ --region us-east-1
示例 — 限制对特定 IP 范围的访问:
aws signin put-resource-permission-statement \ --source-ip "IP_ADDRESS" \ --excluded-principal "arn:aws:iam::123456789012:role/BreakGlassRole" \ --region us-east-1
注意
该--excluded-principal参数指定一个绕过网络限制的排除主体,在网络条件发生变化时保留紧急访问权限。
第 2 步:启用控制台授权配置
以下步骤将在您的账户或组织上激活控制台登录流程的策略执行。可以随时创建资源权限声明,但在启用控制台授权之前,不会对其进行评估。
警告
如果您的网络条件配置不正确,或者现有服务控制策略 (SCP) 或资源控制策略 (RCP) 拒绝操作,则启用控制台授权可能会将主体锁定在外。 AWS Sign-In 在启用控制台授权之前,请确认您的权限声明正确无误,并删除或调整任何拒绝signin:Authenticatesignin:AuthorizeOAuth2Access、或的 SCP 或 RCP。signin:CreateOAuth2Token
对于独立账户:
aws signin put-console-authorization-configuration \ --target-id <your-aws-account-id> \ --region us-east-1
对于 AWS 组织:
aws signin put-console-authorization-configuration \ --target-id <your-aws-organization-id> \ --region us-east-1
验证配置:
aws signin get-console-authorization-configuration \ --target-id <your-target-id> \ --region <your-region>
删除控制台授权配置:
aws signin delete-console-authorization-configuration \ --target-id <your-target-id> \ --region us-east-1
第 3 步:验证您的政策
列出所有权限声明:
aws signin list-resource-permission-statements \ --max-results 50 \ --region <your-region>
检索完整的合并策略:
aws signin get-resource-policy \ --region <your-region>
该get-resource-policy命令返回完整的基于资源的策略,该策略由您的所有权限声明组成。在测试控制台访问权限之前,请查看此政策以确认其反映了您的预期访问控制。
区域可用性
所有 AWS 商业区域均提供控制台授权 API。您可以从您运营的任何地区调用这些 API。
重要
必须us-east-1在该区域中执行写入操作(put-console-authorization-configurationput-resource-permission-statementdelete-console-authorization-configuration、、、delete-resource-permission-statement)。中创建的策略us-east-1会自动全局复制。可以在任何区域执行读取操作 (get-console-authorization-configurationlist-resource-permission-statements,,get-resource-policy)。
了解政策结构
AWS Sign-In 策略包含两个保护控制台登录流程不同阶段的声明:
-
Pre-authentication 声明(操作:
signin:Authenticate):在身份验证完成之前,在收到登录请求时进行评估。由于主体的身份尚未得到确认,因此全局密钥aws:PrincipalArn在此阶段不可用。在此阶段signin:PrincipalArn可以免除特定委托人的网络限制。 Network-based 条件密钥在此阶段可供评估。 -
Post-authentication 声明(操作:
signin:AuthorizeOAuth2Access,signin:CreateOAuth2Token):在 OAuth 令牌交换期间进行身份验证后评估。aws:PrincipalArn用于豁免特定负责人。在此阶段,所有基于网络和基于身份的条件密钥都可用于评估。
这两个语句都是必需的,因为控制台登录使用 OAuth 2.0,它按顺序执行所有三个操作。只有一个语句的策略会使另一个阶段处于不受保护状态。signin:PrincipalArn支持根用户、IAM 用户和角色主体类型。aws:PrincipalArn支持所有委托人类型(根用户、IAM 用户、联合用户、角色)。
策略示例
示例 1:具有网络边界且不包括主体的 RCP
以下资源控制策略 (RCP) 拒绝从公司网络外部 AWS 管理控制台 登录组织中的所有账户。指定的排除校长可免于紧急进入。由于 VPC ID 仅在一个区域内是唯一的,因此该政策包括第三条声明,用于 VPC-based 限制对预期区域的访问权限。
该EnforceNetworkPerimeterPreAuth声明用于在预身份验证阶段signin:PrincipalArn对排除在外的委托人进行豁免。该EnforceNetworkPerimeterPostAuth声明用于在身份验证后aws:PrincipalArn对排除在外的委托人进行豁免。该EnforceSourceVPCRegion声明确保请求区域与 VPC 区域相匹配,从而限制对指定 VPC 的预期区域的访问。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceNetworkPerimeterPreAuth", "Effect": "Deny", "Principal": "*", "Action": ["signin:Authenticate"], "Resource": "*", "Condition": { "ArnNotEquals": { "signin:PrincipalArn": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::777788889999:user/EmergencyUser", "arn:aws:iam::777788889999:role/OrgBreakGlassRole" ] }, "NotIpAddressIfExists": { "aws:SourceIp": "<my-corporate-cidr>" }, "StringNotEquals": { "aws:SourceVpc": "<my-vpc>" } } }, { "Sid": "EnforceNetworkPerimeterPostAuth", "Effect": "Deny", "Principal": "*", "Action": ["signin:CreateOAuth2Token", "signin:AuthorizeOAuth2Access"], "Resource": "*", "Condition": { "ArnNotEquals": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::777788889999:user/EmergencyUser", "arn:aws:iam::777788889999:role/OrgBreakGlassRole" ] }, "NotIpAddressIfExists": { "aws:SourceIp": "<my-corporate-cidr>" }, "StringNotEquals": { "aws:SourceVpc": "<my-vpc>" } } }, { "Sid": "EnforceSourceVPCRegion", "Effect": "Deny", "Principal": "*", "Action": [ "signin:Authenticate", "signin:CreateOAuth2Token", "signin:AuthorizeOAuth2Access" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "<my-vpc>" }, "StringNotEqualsIfExists": { "aws:RequestedRegion": "<my-vpc-region>" } } } ] }
本策略:
-
除非请求来自企业 IP 范围或企业 VPC,否则拒绝访问登录页面。排除的根账户和 IAM 用户可通过
signin:PrincipalArn(预身份验证)获得豁免。 -
拒绝 OAuth 代币交换,除非来自公司 IP 范围或 VPC。排除的根账户、IAM 用户和角色可通过
aws:PrincipalArn(身份验证后全局密钥)获得豁免。 -
如果请求来自指定的 VPC,但该区域不匹配,则访问将被拒绝。 AWS VPC ID 在一个区域内是唯一的,相同的 VPC ID 可以存在于不同的区域中。
-
配置为 RCP 时,适用于您的 AWS 组织中的全球范围。
示例 2:不包括本金的 IP-based 准入 Resource-based 政策
以下基于资源的策略拒绝所有在指定 IP 范围之外提出请求的主体访问控制台,排除在外的主体除外。该策略包含两个语句:使用特定服务密钥的预身份验证语句和使用全局signin:PrincipalArn密钥的身份验证后语句。aws:PrincipalArn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": ["signin:Authenticate"], "Resource": "*", "Condition": { "ArnNotEquals": { "signin:PrincipalArn": "<excluded-principal-arn>" }, "NotIpAddress": { "aws:SourceIp": "<my-corporate-cidr>" }, "StringEquals": { "aws:ResourceAccount": "<my-aws-account-id>" } } }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": ["signin:CreateOAuth2Token", "signin:AuthorizeOAuth2Access"], "Resource": "*", "Condition": { "ArnNotEquals": { "aws:PrincipalArn": "<excluded-principal-arn>" }, "NotIpAddress": { "aws:SourceIp": "<my-corporate-cidr>" }, "StringEquals": { "aws:ResourceAccount": "<my-aws-account-id>" } } } ] }
本策略:
-
拒绝访问所有委托人,除非他们从 IP 范围
<my-corporate-cidr>连接。 -
使用
signin:PrincipalArn(预身份验证)和aws:PrincipalArn(后身份验证)使被排除的主体免受网络限制。 -
仅适用于配置资源策略的特定账户(由标识
<my-aws-account-id>)。
最佳实践
为紧急恢复访问权限配置排除在外的委托人
AWS 建议在生产环境中强制执行控制台授权策略之前,至少配置一个排除的用户。在预身份验证阶段,signin:PrincipalArn条件密钥豁免根用户、IAM 用户和角色委托人。在身份验证后阶段,aws:PrincipalArn条件密钥豁免所有委托人类型(根用户、IAM 用户、联合用户、角色)。
排除的委托人是可选的,但是如果网络状况意外变化或策略配置错误,省略这些委托人会增加账户锁定的风险。
推荐的排除主配置步骤:
-
创建排除的 IAM 角色(例如
BreakGlassRole)。 -
对于排除的角色,在角色信任策略中要求 MFA。
-
仅向排除的身份授予紧急恢复所需的最低权限。
-
在预身份验证 (
signin:PrincipalArn) 和身份验证后 () 政策声明中均包含排除的主体 ARN。aws:PrincipalArn -
记录恢复过程并将其安全地存储在外面 AWS。
-
定期测试排除的主体访问权限,以确认其在需要时有效。
维护恢复访问路径
除了上述不包括的主体外,还要确保有其他访问方法可用,以防控制台授权策略意外阻止登录:
-
Role-based 编程访问:控制台授权策略仅适用于交互式控制台登录。它们不适用于使用 SigV4 签名的 API 请求。如果您拥有编程访问权限(例如,现有访问密钥、跨账户角色),请使用它来调用
signin:DeleteConsoleAuthorizationConfiguration和删除限制策略。证书必须包含signin:DeleteConsoleAuthorizationConfiguration权限(包含在AWSSignInResourcePolicyManagement托管策略中)。 AWS 建议使用临时证书而不是长期 IAM 用户访问密钥。对于成员账户,管理账户管理员可以假设OrganizationAccountAccessRole成员账户 (aws sts assume-role) 来获取这些临时证书。 -
AWS 支持恢复:保持您的根用户帐户电子邮件和电话号码为最新状态。如果排除的主体访问权限和编程访问权限均不可用,则 AWS 支持部门可以在身份验证后提供恢复门户链接。启用主机授权后,我的账户被锁定了有关完整的恢复过程,请参见。
在生产部署之前进行测试
AWS 建议在未彻底测试该政策对账户的影响之前,不要将限制性的 RCP 附加到组织的根目录中。取而代之的是,创建一个 OU,一次可以将账户转移到一个账户中,或者至少少量移动,以确保你不会无意中将用户锁定在关键账户之外。
测试工作流程:
-
创建包含主要网络限制的单一权限声明。
-
在非生产账户中启用控制台授权。
-
测试来自允许和拒绝的网络的控制台访问权限。
-
查看亚马逊 CloudTrail 日志以确认政策评估行为。
-
使用您的排除主体测试访问权限。
-
逐步扩展到其他网络和帐户。
-
在生产账户中强制执行之前进行监控。
采用深度防御进行设计
使用 AWS Sign-In 基于资源的策略和资源控制策略作为更广泛的安全策略中的一层。 AWS Sign-In 策略根据网络位置和主体身份限制控制台访问权限。将它们与其他策略类型结合使用以创建全面的访问控制:
-
AWS Sign-In 策略(基于资源的策略和 RCP):在身份验证之前、期间和之后,根据网络位置和主体身份限制控制台访问权限。
-
IAM 政策:控制用户登录后可以执行的操作。
-
服务控制策略 (SCP):对所有委托人应用组织范围的权限保护。
-
VPC 终端节点策略:控制可通过 VPC 终端节点访问哪些服务和账户。
持续监控和审计
AWS CloudTrail 自动记录所有 AWS Sign-In 策略评估和配置更改。在 “事件历史记录” 中查看这些 CloudTrail 事件,最长可达 90 天。要延长保留时间,请通过创建跟踪将事件传输到 Amazon S3(请参阅创建跟踪)。要获得实时警报,请创建与 AWS Sign-In 事件匹配的 Amazon EventBridge 规则,将您的跟踪配置为将基于指标筛选的警报传送到 CloudWatch日志日志组,或者将事件转发到现有 SIEM 解决方案。
使用案例
- 网络边界执法
-
将控制台访问权限限制为企业 VPC 或批准的 IP 范围。对个人账户使用基于资源的策略或资源控制策略 (RCP) 在组织范围内强制执行,以确保用户只能从可信网络位置登录,从而防止来自公共或不可信网络的未经授权的访问。
示例场景:一家公司要求所有控制台访问权限都来自其公司网络或经批准的 AWS VPC。他们为单个账户或整个组织的 RCP 配置基于资源的策略,该策略拒绝来自所有其他网络的访问,同时保持紧急管理员的紧急恢复访问权限。
- 合规性要求
-
满足基于网络的访问控制的监管要求。许多合规框架要求组织根据网络位置限制对敏感系统的访问。 AWS Sign-In 策略提供可审计、可强制执行的控制措施,以证明符合这些要求。
示例场景:金融服务公司必须遵守要求只能从经批准的网络访问控制台的法规。他们使用 RCP 来执行组织范围的网络限制并维护 AWS CloudTrail 日志作为合规性证据。
- Multi-account 治理
-
在 AWS 组织中实施一致的控制台访问政策。使用 RCP 对所有成员账户强制执行标准网络限制,从而确保一致的安全态势,而无需进行个人账户级别的配置。
示例场景:拥有 100 个以上 AWS 账户的企业使用 RCP 强制执行一项政策,要求所有控制台访问均来自其组织内的 VPC 终端节点,从而确认对所有账户进行一致的网络控制。
- Third-party 访问控制
-
向来自特定网络的合作伙伴或承包商授予临时控制台访问权限。组织可以在不影响整体安全状况的情况下为外部各方创建有时间限制、受网络限制的控制台访问权限。
示例场景:公司需要向咨询公司授予临时控制台访问权限。他们创建了一项基于资源的策略,仅允许从咨询公司的已知 IP 范围进行访问,并且仅允许分配给顾问的 IAM 角色进行访问。
- 将控制台访问权限限制为特定的委托人
-
无论网络位置如何,只允许一组已定义的主体登录 AWS 管理控制台,并拒绝所有其他用户登录。这对于不使用 VPC 终端节点且想要基于身份的控制台限制的客户很有用。被拒绝登录控制台的委托人保留其编程访问权限; AWS Sign-In 政策仅允许主机登录,只有您豁免的委托人才能登录。
示例场景:一家公司只希望其管理员使用控制台。他们配置一个 RCP,拒绝除管理员主体 ARN 之外的所有委托人登录控制台。具有有效证书的 Amazon EC2 实例角色无法登录控制台,因为它不是豁免主体,即使它保留了编程权限。这解决了使用实例角色凭证登录控制台的常见情况。
控制台访问控制疑难解答
由于 Sign-in 基于资源的策略中的网络状况,我无法登录
当 AWS Sign-In 策略拒绝访问时,您可能会看到以下错误消息之一:
-
“您的身份验证信息不正确。请再试一次。” (基于资源的策略拒绝预身份验证)
-
“认证失败请求无效”(RCP 拒绝预身份验证)
-
“身份验证失败:要访问此帐户,请从其他网络登录,或联系管理员以获取更多信息”(身份验证后拒绝)
如果您发现其中任何错误并认为应该允许您访问,请联系您的 AWS 管理员。他们可以查看 errorMessage “由于资源策略导致授权被拒绝” 或 “由于资源控制策略导致授权被拒绝” ConsoleLogin 的事件 CloudTrail 日志,以确定哪个策略声明拒绝了访问。
可能的原因:
-
您的源 IP 地址不在允许的 CIDR 范围内。
-
您未连接到所需的 VPC 或 VPC 终端节点。
-
您正在访问的区域登录终端节点与政策中的预期区域不匹配。
-
您的委托人ARN未正确列在保单的除外委托人中。
-
该政策最近进行了更新,该更改尚未在全球范围内复制。
解决方法:
IAM 身份中心门户用户:通过 IAM 身份中心门户进行控制台访问目前与基于网络条件密钥限制访问的 AWS Sign-In 策略不兼容。要恢复用户在 IAM Identity Center 用户中的访问权限,请在您的策略中删除或调整基于网络的条件密钥,或引导这些用户通过其他身份验证方法登录。
-
确认您已连接到公司网络或 VPN。
-
如果配置了基于 VPC 终端节点的限制,请确认您正在通过正确的 VPC 终端节点进行访问。
-
请联系您的 AWS 管理员验证策略配置并确认哪些网络已获得授权。
-
如果您被配置为排除的主体,请确认您的委托人 ARN 在排除的主体列表中配置正确。
-
如果最近更改了策略,请等待几分钟以完成全局复制。
对于诊断此问题的管理员:
-
查看策略评估事件 AWS CloudTrail 日志,以确定哪个策略声明拒绝了访问。
-
aws signin get-resource-policy用于查看当前的策略配置。 -
验证用户的网络位置是否与策略中的条件相匹配。
-
如果用户应免受网络限制,请确认排除的主体配置正确。
启用主机授权后,我的账户被锁定了
如果您配置了控制台授权但无法再访问您的账户,则在强制执行该策略之前,您可能没有配置排除的委托人。
有多种途径可以重新获得访问权限,具体取决于您的账户类型和可用凭证。
选项 1:使用编程访问(AWS CLI 或 SDK)
控制台授权策略仅适用于交互式控制台登录。它们不适用于使用 SigV4 签名的 API 请求。如果您拥有编程访问权限(例如,现有访问密钥、跨账户角色),请使用它来调用signin:DeleteConsoleAuthorizationConfiguration和删除限制策略。您使用的凭证必须具有调用权限signin:DeleteConsoleAuthorizationConfiguration。AWSSignInResourcePolicyManagement托管策略包含此权限。 AWS 建议使用临时证书而不是长期 IAM 用户访问密钥。对于成员账户,管理账户管理员可以假设OrganizationAccountAccessRole成员账户获取临时证书。此角色不会在受邀加入组织的账户中自动创建。
aws signin delete-console-authorization-configuration \ --target-id <your-aws-account-id> \ --region us-east-1
或者删除特定的权限声明:
# First, list statements to get the statement ID aws signin list-resource-permission-statements \ --region us-east-1 # Then delete the problematic statement aws signin delete-resource-permission-statement \ --statement-id <statement-id> \ --region us-east-1
选项 2:联系 AWS 支持部门
如果您没有编程访问权限且无法使用账户访问权限,请联系 AWS 支持部门启动锁定恢复流程。OrganizationAccountAccessRole
恢复过程如下所示:
-
如果您无法使用上述选项解决问题,请在支持中心提交 AWS 支持案例。 AWS 支持人员将在检查您的账户之前验证您的身份。验证方法可能包括确认根用户账户的电子邮件地址、回复电话验证电话或回答账户安全问题。
-
AWS 支持部门确认控制台访问问题是由基于资源的策略封锁引起的。
-
AWS 支持人员共享了恢复门户链接。使用此链接使用具有
signin:DeleteConsoleAuthorizationConfiguration权限的账户中的 IAM 委托人登录。此权限允许主体删除导致封锁的控制台授权配置。
重要
恢复门户删除该账户的整个控制台授权配置,包括所有资源权限声明。恢复门户不允许重新配置 AWS Sign-In 基于资源的策略。
恢复门户链接将在 AWS 支持部门共享 72 小时后过期。如果您未在该窗口内完成恢复,请联系 AWS 支持部门重新启动该过程。
重新获得访问权限后:
-
查看并更新您的资源权限声明,以包括正确配置的排除主体。
-
在重新启用控制台授权之前,测试来自预期网络的控制台访问权限。
-
记录您的恢复程序以备将来参考。
我所做的更改可能不会立即可见
策略更改会全局复制,但复制可能需要几分钟。
解决方法:
-
更改策略后等待几分钟,以完成全局复制。
-
使用
get-resource-policy以下命令验证您的更改:
aws signin get-resource-policy --region <your-region>
-
检查策略评估事件 AWS CloudTrail 日志,以确认正在评估新策略。
-
确认您使用正确的区域进行操作(写入操作必须使用
us-east-1)。 -
如果使用基于 VPC 终端节点的条件,请验证 VPC 终端节点策略的配置是否正确。
常见的策略复制问题:
-
缓存的登录页面:浏览器可能会缓存登录页面。清除浏览器缓存或使用隐身窗口来测试政策变更。
-
冲突陈述:如果您有多个权限声明,请确认它们之间没有冲突。
get-resource-policy用于查看合并后的政策。 -
VPC 终端节点 AWS Sign-In 策略:策略与 VPC 终端节点策略配合使用。两者都必须允许所需的访问权限。