本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
OpenSearch UI 应用程序的网络访问控制配置参考
以下部分提供了 OpenSearch UI 支持的每种网络访问控制的策略示例。每个示例都包含用于应用它的 AWS Command Line Interface (AWS 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 终端节点
-
将以下策略保存到名为的本地文件中
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" } } } ] } -
创建 IAM 策略。
aws iam create-policy \ --policy-nameDenyOpenSearchUIOutsideVpce\ --description "Denies OpenSearch UI access outside the approved VPC endpoint" \ --policy-document file://policy.json响应包括政策 ARN。请记下此值以供下一步使用。
-
将策略附加到访问应用程序的 IAM 角色或用户。
aws iam attach-role-policy \ --role-nameOpenSearchUIUserRole\ --policy-arnarn:aws:iam::111122223333:policy/DenyOpenSearchUIOutsideVpce
策略生效后,委托人从批准的 VPC 终端节点之外访问应用程序时会收到403 forbidden响应。通过端点进行访问正常。
将委托人限制在 IP 地址范围内
以下基于身份的策略会拒绝访问,除非请求来自经批准的 IP 地址范围,例如您公司网络的公共出口范围。placeholder values以 CIDR 表示法替换为你自己的 IP 地址范围。
将主体限制在 IP 地址范围内
-
将以下策略保存到名为的本地文件中
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" ] } } } ] } -
创建 IAM 策略。
aws iam create-policy \ --policy-nameDenyOpenSearchUIExternalAccess\ --description "Denies OpenSearch UI access from outside corporate IP ranges" \ --policy-document file://policy.json -
将策略附加到访问应用程序的 IAM 角色或用户。
aws iam attach-role-policy \ --role-nameOpenSearchUIUserRole\ --policy-arnarn:aws:iam::111122223333:policy/DenyOpenSearchUIExternalAccess
注意
当请求通过 VPC 终端节点到达aws:SourceIp时,不存在。如果您同时使用私有(VPC 终端节点)和公有(IP-restricted)访问路径,请在策略中考虑这两个条件密钥,这样您就不会无意中拒绝合法的 VPC 终端节点流量。
使用 VPC 终端节点策略限制访问
基于身份的策略管理特定的委托人。要控制用户可以通过 VPC 终端节点访问哪些应用程序,无论哪个主体连接,请将策略附加到接口 VPC 终端节点本身。以下端点策略仅允许访问特定的应用程序。将placeholder values替换为您自己的 AWS 区域、账户 ID 和应用程序 ID。
使用 VPC 终端节点策略限制访问
-
将以下策略保存到名为的本地文件中
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" } ] } -
将策略应用于接口 VPC 终端节点。
aws ec2 modify-vpc-endpoint \ --vpc-endpoint-idvpce-1a2b3c4d5e6f7g8h9\ --policy-document file://policy.json
有关 OpenSearch UI 的 VPC 终端节点策略的更多信息,请参阅管理从 VPC 终端节点对 OpenSearch 用户界面的访问。
在组织内强制访问 VPC 终端节点
基于身份的策略限制特定的委托人,VPC 终端节点策略限制特定的终端节点。要对组织中的每个账户统一实施网络访问权限,并在网络外用户进行身份验证之前将其屏蔽,请向您的组织附加资源控制策略 (RCP)。 AWS
除非请求通过指定的 VPC 终端节点到达,否则以下资源控制策略拒绝对组织中的 OpenSearch UI 应用程序的所有访问。它拒绝预身份验证登录页面 (opensearch:ViewLoginPage) 和经过身份验证的访问 (opensearch:ApplicationAccessAll)。经批准的网络之外的用户既无法加载登录页面,也无法访问应用程序。placeholder value用您自己的 VPC 终端节点 ID 替换。
在组织内强制执行 VPC 终端节点访问权限
-
将以下策略保存到名为的本地文件中
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" } } } ] } -
创建资源控制策略。从您组织的管理账户或委派管理员账户运行此命令。
aws organizations create-policy \ --nameDenyOpenSearchUIOutsideVpce\ --description "Denies OpenSearch UI access outside the approved VPC endpoint" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json -
根据您要保护的范围,将策略附加到组织根目录、组织单位或帐户。
aws organizations attach-policy \ --policy-idp-example12345\ --target-id111122223333有关更多信息,请参阅《AWS 组织用户指南》中的附加和分离资源控制策略。
策略生效后,经批准的 VPC 终端节点之外的用户将无法访问该应用程序。根据应用程序的身份验证类型和请求的 URL,用户要么收到403 forbidden响应而不是登录页面,要么被重定向到登录,然后被拒绝访问应用程序。如果您通过 VPC 终端节点进行连接,则会进入登录页面并正常登录。
注意
对资源控制策略的更改可能需要一分钟才能生效。如果您在创建、更新或附加策略后立即进行测试,则可能仍会观察到之前的行为。
在组织内强制执行 VPC 访问权限
要批准 VPC 中的每个接口 VPC 终端节点,而不是命名一个终端节点,请使用aws:SourceVpc。除非请求通过指定的 VPC 到达,否则以下资源控制策略会拒绝整个组织的访问。placeholder value用您自己的 VPC ID 替换。
在组织内强制执行 VPC 访问权限
-
将以下策略保存到名为的本地文件中
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" } } } ] } -
创建并附加资源控制策略。
aws organizations create-policy \ --nameDenyOpenSearchUIOutsideVpc\ --description "Denies OpenSearch UI access outside the approved VPC" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json aws organizations attach-policy \ --policy-idp-example12345\ --target-id111122223333
在组织内强制执行 IP 地址范围访问权限
除非请求来自批准的 IP 地址范围,例如公司网络的公共出口范围,否则以下资源控制策略会拒绝整个组织的访问。placeholder values以 CIDR 表示法替换为你自己的 IP 地址范围。
在组织内强制执行 IP 地址范围访问权限
-
将以下策略保存到名为的本地文件中
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" ] } } } ] } -
创建并附加资源控制策略。
aws organizations create-policy \ --nameDenyOpenSearchUIExternalAccess\ --description "Denies OpenSearch UI access from outside corporate IP ranges" \ --type RESOURCE_CONTROL_POLICY \ --content file://policy.json aws organizations attach-policy \ --policy-idp-example12345\ --target-id111122223333
注意
与基于身份的 IP 示例一样,aws:SourceIp通过 VPC 终端节点到达的请求中不存在。如果您同时使用私有和公有访问路径,请考虑这两个条件密钥,这样您就不会无意中拒绝合法的 VPC 终端节点流量。