如何解決在 Amazon OpenSearch Service 中遺失或無效的主機標頭?

2 分的閱讀內容
0

由於在 Amazon OpenSearch Service 中的主機標頭無效或遺失,因此我收到「未授權」錯誤。

簡短說明

在請求的主機標頭值與完整網域名稱 (FQDN) 不同時,系統會記錄 Amazon CloudWatch 中的 InvalidHostHeaderRequests 指標。

針對以下條件,Amazon OpenSearch Service 會拒絕遺失有效標頭的請求:

  • 請求的網域為可公開存取。
  • 請求的網域會使用開放的 AWS Identity and Access Management (IAM) 存取政策,而非以資源型政策 (例如以 IP 型政策) 來存取。

若要避免觸發 InvalidHostHeaderRequests 指標計數器,請考慮以下方法:

否則,您會收到以下錯誤:

$ curl -H 'Host: domain.com' domain-endpoint-name
User is not authorized to perform this action

解決方法

範例

以下是開放存取政策的範例:

{
	"Version": "2012-10-17",
	"Statement": [{
		"Effect": "Allow",
		"Principal": {
			"AWS": "*"
		},
		"Action": "es:*",
		"Resource": "arn:aws:es:Region:account-id:domain/os-domain-name/*"
	}]
}

以下命令會使用 domain.com 作為主機標頭值,此並非 os-domain-name 網域的有效標頭。在此請求被提交至具有開放存取政策的可公開存取網域時,系統會記錄 InvalidHostHeaderRequests 指標並拒絕請求。

$ curl -H 'Host: domain.com' os-domain-name
User is not authorized to perform this action

若要解決「使用者未經授權執行此動作」錯誤,請考慮以下方法:

  • 為主機標頭設定適當的值。
  • 使用 VPC 啟動您的 OpenSearch Service 網域。
  • 使用 IP 型存取政策,而非開放存取政策。
  • 使用更精細的存取控制權 (FGAC)

提示 1: 為主機標頭設定適當的值

以下範例命令會將網域名稱指定為主機標頭值:

$ curl -H 'Host: os-endpoint' os-endpoint

以下是使用 AWS 端點 URL 的範例:

curl -H 'Host: xxxxxx..os.amazonaws.com' https://xxxxxx..os.amazonaws.com

提示 2: 使用 VPC 啟動您的 OpenSearch Service 網域

使用 VPC 啟動您的 OpenSearch Service 網域會增加安全層。VPC 也允許您透過安全群組來管理對網域的存取。因此,最佳實務是避免使用公有端點來啟動您的網域。雖然您的請求已達 OpenSearch Service 網域,但當您在 Web 瀏覽器中存取公有端點時,可能會收到未授權的錯誤訊息。如需詳細資訊,請參閱關於 VPC 網域上的存取政策

當您建立具有 VPC 存取權的網域時,端點如下所示 (與公有端點類似):

`https://vpc-domain-name-identifier.region.os.amazonaws.com`

提示 3: 使用資源型政策

使用資源型存取政策 (而非開放存取政策) 來指定 IAM 角色,或將請求限制在 IP 地址或 CIDR 範圍內。

例如,以下 IP 型政策會允許在 11.11.11.11/32 CIDR 範圍內的請求。對此範圍內網域的請求已獲允許,且無論主機標頭值為何,都不會記錄 InvalidHostHeaderRequests 指標。

{
	"Version": "2012-10-17",
	"Statement": [{
		"Effect": "Allow",
		"Principal": {
			"AWS": "*"
		},
		"Action": "es:*",
		"Resource": "arn:aws:es:region:account-id:domain/os-domain-name/*",
		"Condition": {
			"IpAddress": {
				"aws:SourceIp": [
					"11.11.11.11/32"
				]
			}
		}
	}]
}

提示 4: 使用更精細的存取控制權 (FGAC)

除了資源型存取政策之外,您還可以使用 FGAC 來管理 OpenSearch Service 網域的資料存取權。更精細的存取控制權會提供以下優點:

  • 角色型存取控制權
  • 索引、文件和欄位層級的安全性
  • OpenSearch Dashboards 多重租用
  • OpenSearch Service 和 OpenSearch 儀表板的 HTTP 基本身分驗證

由於 FGAC 是根據角色而定,因此在對請求進行身分驗證時會評估使用者憑證。如果更精細的存取控制權會對使用者進行身分驗證,則系統不會記錄 InvalidHostHeaderRequests 指標。如需有關 FGAC 的詳細資訊,請參閱更加總體的情況:更精細的存取控制權和 OpenSearch Service 安全性

相關資訊

建立和管理 Amazon OpenSearch Service 網域

如何使用 OpenSearch Dashboards 對 Amazon Cognito 身分驗證問題進行疑難排解?

Amazon OpenSearch Service 中的 Identity and Access Management

AWS 官方
AWS 官方已更新 3 年前