AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
當我使用 IAM 驗證連接到 ElastiCache 叢集時,如何解決 "invalid username-password pair or user is disabled" (使用者名稱-密碼對無效或使用者已停用) 錯誤?
當我使用 AWS Identity and Access Management (IAM) 驗證連線到 Amazon ElastiCache Valkey 和 Redis OSS 叢集時,我收到 "AuthenticationError: invalid username-password pair or user is disabled" (AuthenticationError:無效的使用者名稱-密碼對或使用者已停用) 錯誤。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
建立使用者
請完成下列步驟:
- 開啟 ElastiCache console (ElastiCache 主控台)。
- 從 Configurations (組態) 中,選擇 User management (使用者管理)。
- 選擇 Create user (建立使用者),然後輸入下列資訊:
在 User ID (使用者 ID) 中,輸入使用者 ID。
在 User name (使用者名稱) 中,輸入使用者名稱。
注意:對於 IAM 使用者,使用者 ID 和使用者名稱必須相同且小寫。
從下拉式清單中選取您的引擎。
在 Authentication mode (驗證模式) 中,選取 IAM authentication (IAM 驗證)。
在 Access string (存取字串) 欄位中,輸入 on ~* +@all。
**注意:**若要讓作用中使用者存取所有可用的按鍵和命令,請使用 on ~*+@all 存取字串。最佳做法是建立限制性存取字串,僅提供使用者所需的權限。如需詳細資訊,請參閱使用存取字串指定權限。 - 選擇 Create (建立)。
建立使用者群組
請完成下列步驟:
- 開啟 ElastiCache console (ElastiCache 主控台)。
- 從 Configurations (組態) 中,選擇 User group management (使用者群組管理)。
- 選擇 Create user group (建立使用者群組)。
- 在 User group ID (使用者群組 ID) 中,輸入使用者群組 ID。
- 從下拉式清單中選取您的引擎。
- 在 Selected users (選取的使用者) 區段中,選擇 Manage (管理)。
- 從使用者清單中,選取您先前建立的使用者。
**重要:**如果您在 Engine (引擎) 中選擇 Redis,請選取名為 Default (預設) 的使用者。ElastiCache 會自動建立一個具有完全 Redis 存取權的預設使用者,該使用者無需密碼進行驗證。若要修改預設使用者設定,請參閱使用主控台和 CLI 建立使用者和使用者群組。 - 選擇 Create (建立)。
允許 IAM 驗證
在您的 ElastiCache 叢集上啟用傳輸中加密 (TLS)。
為叢集設定角色型存取控制
請完成下列步驟:
- 開啟 ElastiCache console (ElastiCache 主控台)。
- 從叢集清單中選取您的叢集。
- 選擇 Actions (動作),然後選擇 Modify (修改)。
- 從 Access control (存取控制) 中選擇 User group access control list (使用者群組存取控制清單),然後選取您的使用者群組。
- 選擇 Preview changes (預覽變更)。
- 選擇 Save (儲存)。
設定您的 IAM 政策
將 elasticache:Connect 動作新增至用於連線 ElastiCache 叢集的 IAM 身分。IAM 政策範例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:Connect" ], "Resource": [ "AWS_RESOURCE_ARN_1", "AWS_RESOURCE_ARN_2" ] } ] }
**注意:**將 AWS_RESOURCE_ARN_1 替換為您 ElastiCache Valkey 或 Redis OSS 叢集的 Amazon 資源名稱 (ARN),並將 AWS_RESOURCE_ARN_2 替換為您 ElastiCache IAM 使用者的 ARNRN。
然後,將 IAM 角色附加到連線至 ElastiCache 叢集的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或 AWS Lambda 函式。如需詳細資訊,請參閱使用 IAM 進行驗證。
注意:如果您的 IAM 政策正確,但您仍收到 AuthenticationError 錯誤,請檢查組織中的其他政策類型是否有限制。如需詳細資訊,請參閱使用政策管理存取權中的其他政策類型。
檢查網路連線
確認 ElastiCache 叢集和用戶端資源之間的網路連線。
產生驗證權杖
如果您使用 IAM 驗證連線到 ElastiCache 叢集,請使用驗證權杖而不是密碼。IAM 驗證權杖有效期為 15 分鐘。
對於長時間連線,最佳做法是使用支援憑證供應商介面的 Valkey 或 Redis OSS 用戶端。若要將連線延長 12 小時,請使用新權杖傳送 AUTH 或 HELLO。
若要產生 IAM 驗證權杖並連線到您的 ElastiCache 叢集,請完成以下步驟:
-
設定 Amazon EC2 執行個體以執行示範應用程式。如需說明,請參閱 GitHub 網站上的 Elasticache IAM 驗證示範應用程式。
-
若要在使用示範應用程式時產生權杖,請執行下列 Java CLI 命令:
java -cp target/ElastiCacheIAMAuthDemoApp-1.0-SNAPSHOT.jar \ com.amazon.elasticache.IAMAuthTokenGeneratorApp --region REGION --replication-group-id REPLICATION-GROUP-ID --user-id USER-ID**注意:**將 REGION 替換為您的 AWS 區域,將 REPLICATION-GROUP-ID 替換為您的 ElastiCache 複製群組 ID,並將 USER-ID 替換為您 ElastiCache 的 IAM 使用者 ID。
-
使用權杖作為密碼連線到 ElastiCache 叢集。您可以使用 Valkey 或 Redis CLI,或其用戶端 API 庫連線到 ElastiCache 叢集。
Valkey CLI 命令範例:valkey-cli -h PRIMARY-ENDPOINT -p 6379 --tls -c --user USER ID -a TEMPORARY-SECURITY-CREDENTIALRedis CLI 命令範例:
redis6-cli -h PRIMARY-ENDPOINT -p 6379 --tls -c --user USER-ID -a TEMPORARY-SECURITY-CREDENTIAL**注意:**將 PRIMARY-ENDPOINT 替換為您 ElastiCache 叢集的主端點,將 USER-ID 替換為您的 IAM 使用者 ID,並將 TEMPORARY-SECURITY-CREDENTIAL 替換為您的 IAM 認證權杖。
**重要:**使用 valkey-cli 或 redis-cli 命令時,必須同時包含 --tls 和 -a 參數。如果您未提供這些參數或輸入了錯誤的憑證,則會收到 NOAUTH 或 AUTH failed 錯誤訊息。如果您使用的 valkey-cli 或 redis-cli 命令僅包含 --tls 參數,請在連線後使用 AUTH user-id temporary-security-credential 完成驗證。
Lettuce Redis OSS 用戶端範例:
RedisURI redisURI = RedisURI.builder() .withHost(CACHE-NAME) .withPort(6379) .withSsl(true) .withAuthentication(USER-ID, TEMPORARY-SECURITY-CREDENTIAL) .build(); return RedisClient.create(redisURI);
檢查 Redis OSS 或 Valkey 用戶端組態中的元件
在您的 Redis OSS 或 Valkey 用戶端中驗證以下設定:
- 您的 Valkey 或 Redis OSS 用戶端具有正確的 ElastiCache 叢集端點和連接埠。
- 您的 Valkey 或 Redis OSS 用戶端具有 SSL/TLS 支援。
- 您的使用者名稱是已啟用 ElastiCache 的 IAM 使用者。
- 您擁有與您的 ElastiCache 叢集組態、引擎類型和版本參數相符的最新版本的 Valkey 或 Redis OSS 用戶端。過時或不相容的用戶端版本會導致驗證錯誤。
- 您已設定用戶端逾時參數以滿足您的要求。不正確的逾時設定可能會過早終止連線並導致驗證錯誤。
檢查 Amazon CloudWatch 指標
使用 Amazon CloudWatch 指標來監控 ElastiCache 叢集的運作狀態和活動。若要識別驗證問題,最佳做法是監控以下指標:
- 檢查您的連線指標,例如 CurrConnections 和 NewConnections。新連線數減少代表驗證錯誤導致連線嘗試失敗。在各種情況下,ElastiCache 會使用 2 到 6 個連線來監控叢集。如需詳細資訊,請參閱Valkey 和 Redis OSS 的指標。
- 檢查 IamAuthenticationExpirations,以監控可能導致連線失敗的過期 IAM 驗證權杖。
- 請參閱 IamAuthenticationThrottling,以了解 ElastiCache 限制的 IAM 憑證嘗試驗證次數。
相關資訊
使用 IAM 簡化對 Amazon ElastiCache for Redis 叢集的存取管理
GitHub 網站上的 ElastiCache IAM 驗證示範應用程式
Redisson 網站上的如何使用 ElastiCache IAM 憑證供應商連線到 Redis
相關內容
- 已提問 1 年前
- 已提問 1 年前
