本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS PrivateLink
AWS Sign-In OAuth API 支持 AWS PrivateLink,使您无需通过公共互联网即可从亚马逊 VPC 内访问 OAuth 授权终端节点。您可以为配置 VPC 终端节点 AWS Sign-In ,以便在网络上保持 OAuth 授权流量。 AWS
在需要时使用 AWS Sign-In OAuth 的 VPC 终端节点:
-
OAuth 授权流程的私有连接来自您的 Amazon VPC 或连接的本地网络。
-
Network-level 使用 VPC 终端节点策略进行 OAuth 授权的访问控制。
-
在没有公共互联网访问权限的网络隔离环境中进行 OAuth 授权。
配置用于访问 Sign-In OAuth API 的 VPC 终端节点
AWS Sign-In OAuth 支持在无法访问公共互联网的网络中运行。当您为配置 VPC 终端节点时 AWS Sign-In,应用程序和应用程序之间的 OAuth 授权流量将通过该流量进行路 AWS Sign-In 由。 AWS PrivateLinkOAuth 授权流程本身不需要互联网连接。
所需的 VPC 终端节点取决于您的授权模型。region替换为您自己的地区信息。
交互模式
交互式 OAuth 授权(基于浏览器)需要以下 VPC 终端节点:
-
com.amazonaws.region.signin -
com.amazonaws.region.signin-v2
Non-interactive 模式
Non-interactive OAuth 授权(使用 Sigv4 授予客户端证书)需要以下 VPC 终端节点:
-
com.amazonaws.region.signin-v2
实施访问控制
您可以使用 VPC 终端节点策略来控制允许哪些身份和账户通过您的私有网络使用 AWS Sign-In OAuth API。VPC 终端节点策略是在 OAuth 操作之间进行评估的。
可信身份
AWS Sign-In VPC 终端节点需要包含适用于每个身份验证阶段的特定 Sign-In 操作和条件密钥的策略:
-
Pre-authentication 阶段 — 在确定用户身份之前进行评估。由于主体信息尚不清楚,因此只有基于资源的条件密钥可用。
-
支持的操作:
signin:Authenticate,signin:CreateOAuth2PublicClient -
支持的条件键:
aws:ResourceOrgId或aws:ResourceAccount
注意
signin:CreateOAuth2PublicClient仅支持signin:OAuthRedirectUri条件键。此操作不支持其他条件键。 -
-
Post-authentication 阶段-在登录服务颁发会话凭据时进行身份验证后进行评估。完整的主体信息可用。
-
支持的操作:
signin:AuthorizeOAuth2Access、signin:CreateOAuth2Token、signin:IntrospectOAuth2Token、signin:RevokeOAuth2Token -
支持的条件键:
aws:PrincipalOrgId或aws:PrincipalAccount、aws:ResourceOrgId、aws:ResourceAccount
-
示例:仅允许组织中的账户进行 OAuth 操作
此 AWS Sign-In VPC 终端节点策略使用特定于操作的语句允许在身份验证前和身份验证后阶段对指定 AWS 组织中的 AWS 账户进行 OAuth 操作。
{ "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" } } } ] }
示例:仅允许特定账户进行 OAuth 操作
此 AWS Sign-In VPC 终端节点策略使用特定于操作的语句允许在身份验证前和身份验证后阶段对特定 AWS 账户列表进行 OAuth 操作。
{ "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" ] } } } ] }
示例:将动态客户端注册限制为本地主机重定向 URI
此 AWS Sign-In VPC 端点策略将动态客户端注册限制为仅限本地主机重定向 URI。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowDCRLocalhostOnly", "Effect": "Allow", "Principal": "*", "Action": "signin:CreateOAuth2PublicClient", "Resource": "*", "Condition": { "StringLike": { "signin:OAuthRedirectUri": "http://localhost:*" } } } ] }
示例:允许对特定账户进行令牌内省和撤销
此 AWS Sign-In VPC 终端节点策略允许对特定账户进行令牌内省和撤销。 AWS
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowIntrospectAndRevoke", "Effect": "Allow", "Principal": "*", "Action": [ "signin:IntrospectOAuth2Token", "signin:RevokeOAuth2Token" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": [ "123456789012", "210987654321" ] } } } ] }
预期的网络
有关基于网络的访问控制,请参阅使用基于资源的策略和资源控制策略控制控制台访问权限。
控制账户注册流程
该signin:CreateAccount操作控制是否可以从您的私有网络内访问 AWS
账户注册流程。此操作使用匿名委托人(注册期间不存在任何账户),并且不支持条件键。
使用 AWS Sign-In VPC 终端节点策略格式时,除非您明确允许,否则注册流程会被隐式拒绝阻止。如果您的组织需要在私有网络内注册账户,请将以下声明添加到您的 AWS Sign-In VPC 终端节点策略中:
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccountSignup", "Effect": "Allow", "Principal": "*", "Action": "signin:CreateAccount", "Resource": "*" } ] }