View a markdown version of this page

OpenSearch UI 应用程序的网络访问控制配置参考 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

OpenSearch UI 应用程序的网络访问控制配置参考

以下部分提供了 OpenSearch UI 支持的每种网络访问控制的策略示例。每个示例都包含用于应用它的 Amazon Command Line Interface (Amazon CLI) 命令。有关 OpenSearch UI 如何评估这些策略的解释以及最常见任务的分步演练,请参阅。限制 OpenSearch 用户界面应用程序的网络访问权限

根据您要保护的范围和用户连接的网络路径选择示例:

Scope 控件 屏蔽登录页面
单一校长 Identity-based 政策 否
单个 VPC 终端节点 VPC 端点策略 否
组织中的每个账户 资源控制策略(RCP) 是
注意

只有拒绝的资源控制策略才能在网络外用户进行身份验证之前opensearch:ViewLoginPage阻止他们。 Identity-based 和 VPC 终端节点策略在用户登录后适用。

将委托人限制在 VPC 终端节点

以下基于身份的策略拒绝用户或角色访问 OpenSearch UI 应用程序,除非请求通过指定的接口 VPC 终端节点到达。将其附加到访问应用程序的 IAM 委托人。placeholder value用您自己的 VPC 终端节点 ID 替换。

将委托人限制在 VPC 终端节点
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOpenSearchUIAccessOutsideVpce", "Effect": "Deny", "Action": "opensearch:ApplicationAccessAll", "Resource": "arn:aws:opensearch:*:*:application/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpce": "vpc-endpoint-id" } } } ] }
  2. 创建 IAM 策略。

    aws iam create-policy \ --policy-name DenyOpenSearchUIOutsideVpce \ --description "Denies OpenSearch UI access outside the approved VPC endpoint" \ --policy-document file://policy.json

    响应包括政策 ARN。请记下此值以供下一步使用。

  3. 将策略附加到访问应用程序的 IAM 角色或用户。

    aws iam attach-role-policy \ --role-name OpenSearchUIUserRole \ --policy-arn arn:aws:iam::111122223333:policy/DenyOpenSearchUIOutsideVpce

策略生效后,委托人从批准的 VPC 终端节点之外访问应用程序时会收到403 forbidden响应。通过端点进行访问正常。

将委托人限制在 IP 地址范围内

以下基于身份的策略会拒绝访问,除非请求来自经批准的 IP 地址范围,例如您公司网络的公共出口范围。placeholder values以 CIDR 表示法替换为你自己的 IP 地址范围。

将主体限制在 IP 地址范围内
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOpenSearchUIAccessOutsideCorpNetwork", "Effect": "Deny", "Action": "opensearch:ApplicationAccessAll", "Resource": "arn:aws:opensearch:*:*:application/*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "198.51.100.0/24" ] } } } ] }
  2. 创建 IAM 策略。

    aws iam create-policy \ --policy-name DenyOpenSearchUIExternalAccess \ --description "Denies OpenSearch UI access from outside corporate IP ranges" \ --policy-document file://policy.json
  3. 将策略附加到访问应用程序的 IAM 角色或用户。

    aws iam attach-role-policy \ --role-name OpenSearchUIUserRole \ --policy-arn arn:aws:iam::111122223333:policy/DenyOpenSearchUIExternalAccess
注意

当请求通过 VPC 终端节点到达aws:SourceIp时,不存在。如果您同时使用私有(VPC 终端节点)和公有(IP-restricted)访问路径,请在策略中考虑这两个条件密钥,这样您就不会无意中拒绝合法的 VPC 终端节点流量。

使用 VPC 终端节点策略限制访问

基于身份的策略管理特定的委托人。要控制用户可以通过 VPC 终端节点访问哪些应用程序,无论哪个主体连接,请将策略附加到接口 VPC 终端节点本身。以下端点策略仅允许访问特定的应用程序。将placeholder values替换为您自己的 Amazon 区域、账户 ID 和应用程序 ID。

使用 VPC 终端节点策略限制访问
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOpenSearchUIApplication", "Effect": "Allow", "Principal": "*", "Action": "opensearch:ApplicationAccessAll", "Resource": "arn:aws:opensearch:region:account-id:application/application-id" } ] }
  2. 将策略应用于接口 VPC 终端节点。

    aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-1a2b3c4d5e6f7g8h9 \ --policy-document file://policy.json

有关 OpenSearch UI 的 VPC 终端节点策略的更多信息,请参阅管理从 VPC 终端节点对 OpenSearch 用户界面的访问。

在组织内强制访问 VPC 终端节点

基于身份的策略限制特定的委托人,VPC 终端节点策略限制特定的终端节点。要对组织中的每个账户统一实施网络访问权限,并在网络外用户进行身份验证之前将其屏蔽,请向您的组织附加资源控制策略 (RCP)。 Amazon

除非请求通过指定的 VPC 终端节点到达,否则以下资源控制策略拒绝对组织中的 OpenSearch UI 应用程序的所有访问。它拒绝预身份验证登录页面 (opensearch:ViewLoginPage) 和经过身份验证的访问 (opensearch:ApplicationAccessAll)。经批准的网络之外的用户既无法加载登录页面,也无法访问应用程序。placeholder value用您自己的 VPC 终端节点 ID 替换。

在组织内强制执行 VPC 终端节点访问权限
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOpenSearchUIAccessOutsideVpce", "Effect": "Deny", "Principal": "*", "Action": [ "opensearch:ViewLoginPage", "opensearch:ApplicationAccessAll" ], "Resource": "arn:aws:opensearch:*:*:application/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpce": "vpc-endpoint-id" } } } ] }
  2. 创建资源控制策略。从您组织的管理账户或委派管理员账户运行此命令。

    aws organizations create-policy \ --name DenyOpenSearchUIOutsideVpce \ --description "Denies OpenSearch UI access outside the approved VPC endpoint" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json
  3. 根据您要保护的范围,将策略附加到组织根目录、组织单位或帐户。

    aws organizations attach-policy \ --policy-id p-example12345 \ --target-id 111122223333

    有关更多信息,请参阅《Amazon 组织用户指南》中的附加和分离资源控制策略。

策略生效后,经批准的 VPC 终端节点之外的用户将无法访问该应用程序。根据应用程序的身份验证类型和请求的 URL,用户要么收到403 forbidden响应而不是登录页面,要么被重定向到登录,然后被拒绝访问应用程序。如果您通过 VPC 终端节点进行连接,则会进入登录页面并正常登录。

注意

对资源控制策略的更改可能需要一分钟才能生效。如果您在创建、更新或附加策略后立即进行测试,则可能仍会观察到之前的行为。

在组织内强制执行 VPC 访问权限

要批准 VPC 中的每个接口 VPC 终端节点,而不是命名一个终端节点,请使用aws:SourceVpc。除非请求通过指定的 VPC 到达,否则以下资源控制策略会拒绝整个组织的访问。placeholder value用您自己的 VPC ID 替换。

在组织内强制执行 VPC 访问权限
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOpenSearchUIAccessOutsideVpc", "Effect": "Deny", "Principal": "*", "Action": [ "opensearch:ViewLoginPage", "opensearch:ApplicationAccessAll" ], "Resource": "arn:aws:opensearch:*:*:application/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-id" } } } ] }
  2. 创建并附加资源控制策略。

    aws organizations create-policy \ --name DenyOpenSearchUIOutsideVpc \ --description "Denies OpenSearch UI access outside the approved VPC" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json aws organizations attach-policy \ --policy-id p-example12345 \ --target-id 111122223333

在组织内强制执行 IP 地址范围访问权限

除非请求来自批准的 IP 地址范围,例如公司网络的公共出口范围,否则以下资源控制策略会拒绝整个组织的访问。placeholder values以 CIDR 表示法替换为你自己的 IP 地址范围。

在组织内强制执行 IP 地址范围访问权限
  1. 将以下策略保存到名为的本地文件中policy.json。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOpenSearchUIAccessOutsideCorpNetwork", "Effect": "Deny", "Principal": "*", "Action": [ "opensearch:ViewLoginPage", "opensearch:ApplicationAccessAll" ], "Resource": "arn:aws:opensearch:*:*:application/*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "198.51.100.0/24" ] } } } ] }
  2. 创建并附加资源控制策略。

    aws organizations create-policy \ --name DenyOpenSearchUIExternalAccess \ --description "Denies OpenSearch UI access from outside corporate IP ranges" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json aws organizations attach-policy \ --policy-id p-example12345 \ --target-id 111122223333
注意

与基于身份的 IP 示例一样,aws:SourceIp通过 VPC 终端节点到达的请求中不存在。如果您同时使用私有和公有访问路径,请考虑这两个条件密钥,这样您就不会无意中拒绝合法的 VPC 终端节点流量。