View a markdown version of this page

可信身份 - AWS 管理控制台

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

可信身份

借助AWS 管理控制台私有访问权限,您可以限制哪些AWS 账户和组织身份可以AWS 管理控制台从您的 VPC 中使用。这样可以防止来自个人帐户和组织外部帐户的访问。

AWS 管理控制台和 AWS 登录 VPC 终端节点均支持控制登录账户身份的 VPC 终端节点策略。在登录时对策略进行评估,并定期对现有会话进行重新评估。

  • AWS 管理控制台VPC 终端节点策略-限制哪些登录身份可以通过此AWS 管理控制台终端节点访问。使用 an Action: * d Principal: *、wit aws:PrincipalOrgId h 或aws:PrincipalAccount条件键。

  • AWS 登录VPC 终端节点策略(登录流程)— 限制谁AWS 管理控制台可以通过此端点登录,在证书验证之前和之后分别进行评估。 Pre-authentication使用signin:Authenticate在输入凭据之前阻止登录尝试。 Post-authentication在证书被接受之后以及 OAuth 令牌交换期间,使用和验证会话。signin:AuthorizeOAuth2Access signin:CreateOAuth2Token

  • AWS 登录VPC 终端节点策略(注册流程)-控制是否可在您的私有网络内访问AWS账户注册流程。使用隐式拒绝来支持signin:CreateAccount操作。

以下示例说明如何按账户或组织限制访问权限。使用适用于每个终端节点的相应策略格式,对您的终端节点AWS 管理控制台和 AWS 登录 VPC 终端节点应用同等限制。

AWS 管理控制台VPC 终端节点示例

示例:仅允许组织中的账户

此 AWS 管理控制台 VPC 终端节点策略允许AWS 账户在指定AWS组织中进行访问并阻止任何其他账户。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgId": "o-xxxxxxxxxxx" } } } ] }
示例:仅允许特定账户

此 AWS 管理控制台 VPC 终端节点策略限制对特定账户列表的访问权限AWS 账户并封锁任何其他账户。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": [ "111122223333", "222233334444" ] } } } ] }

AWS 登录VPC 终端节点示例

AWS 登录VPC 终端节点需要包含适用于每个身份验证阶段的特定 Sign-In 操作和条件密钥的策略:

  • Pre-authentication 阶段 — 在确定用户身份之前进行评估。由于主体信息尚不清楚,因此只有基于资源的条件密钥可用。

    • 支持的操作:signin:Authenticate

    • 支持的条件键:aws:ResourceOrgIdaws:ResourceAccount

  • Post-authentication 阶段-在登录服务颁发会话凭据时进行身份验证后进行评估。完整的主体信息可用。

    • 支持的操作:signin:AuthorizeOAuth2Accesssignin:CreateOAuth2Token

    • 支持的条件键:aws:PrincipalOrgIdaws:PrincipalAccountaws:ResourceOrgIdaws:ResourceAccount

示例:仅允许组织中的账户登录

此 AWS 登录 VPC 终端节点策略使用特定于操作的声明,允许AWS 账户在身份验证前和身份验证后阶段登录指定AWS组织。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "PreAuthOrgRestriction", "Effect": "Allow", "Principal": "*", "Action": "signin:Authenticate", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-xxxxxxxxxxx" } } }, { "Sid": "PostAuthOrgRestriction", "Effect": "Allow", "Principal": "*", "Action": [ "signin:AuthorizeOAuth2Access", "signin:CreateOAuth2Token" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgId": "o-xxxxxxxxxxx" } } } ] }
示例:仅允许特定账户登录

此 AWS 登录 VPC 终端节点策略使用特定于操作的声明,将登录限制为身份验证前和身份验证后阶段的特定AWS 账户列表。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "PreAuthAccountRestriction", "Effect": "Allow", "Principal": "*", "Action": "signin:Authenticate", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": [ "123456789012", "210987654321" ] } } }, { "Sid": "PostAuthAccountRestriction", "Effect": "Allow", "Principal": "*", "Action": [ "signin:AuthorizeOAuth2Access", "signin:CreateOAuth2Token" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": [ "123456789012", "210987654321" ] } } } ] }
控制账户注册流程

signin:CreateAccount操作控制是否可以从您的私有网络内访问AWS账户注册流程。此操作使用匿名委托人(注册期间不存在任何账户),并且不支持条件键。

使用 AWS 登录 VPC 终端节点策略格式时,除非您明确允许,否则注册流程会被隐式拒绝阻止。如果您的组织需要在私有网络内注册账户,请将以下声明添加到您的 AWS 登录 VPC 终端节点策略中:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccountSignup", "Effect": "Allow", "Principal": "*", "Action": "signin:CreateAccount", "Resource": "*" } ] }

访问被拒绝错误页面

如果您使用不属于您账户的身份进行连接,则会看到 “您的账户无权使用 AWS 管理控制台私有访问” 错误。以下屏幕截图显示了 “拒绝访问” 错误页面。

错误页面,其中包含一条消息,表明您无权使用AWS 管理控制台私有访问权限。

允许登录服务控制策略

如果您的AWS组织正在使用允许特定服务的服务控制策略 (SCP),则必须添加signin:*允许的操作。之所以需要此权限,是因为AWS 管理控制台通过私有访问 VPC 终端节点登录会执行 IAM 授权,SCP 会在未经许可的情况下阻止该授权。例如,以下服务控制策略允许在组织中使用 Amazon EC2 和 CloudWatch 服务,包括使用AWS 管理控制台私有访问终端节点访问它们的时间。

{ "Effect": "Allow", "Action": [ "signin:*", "ec2:*", "cloudwatch:*", ... Other services allowed }, "Resource": "*" }

有关 SCP 的更多信息,请参阅《AWS Organizations 用户指南》中的服务控制策略 (SCP)