使用 Redis 的 OSS AUTH 命令進行驗證 - Amazon ElastiCache (雷迪斯 OSS)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Redis 的 OSS AUTH 命令進行驗證

注意

雷迪斯 OSS AUTH 已被取代。角色型存取控制 (RBAC) 規則數量所有無伺服器快取都必須使用 RBAC 進行身分驗證。

Redis OSS 驗證權杖或密碼可讓 Redis OSS 在允許用戶端執行命令之前要求輸入密碼,進而改善資料安全性。Redis OSS 僅適用AUTH於自行設計的叢集。

中的 AUTH 概述 ElastiCache (Redis 的 OSS)

當您將 Redis 作業系統AUTH與 ElastiCache (Redis OSS) 叢集搭配使用時,會有一些改進。

特別是,將 AUTH 與 ElastiCache (Redis OSS)一起使用時,請注意這些 AUTH 令牌或密碼約束:

  • 字符 (或密碼) 必須為 16 - 128 個可列印字元。

  • 非英數字元僅限使用 (!、&、#、$、^、<、>、-)。

  • 只能針對已啟用加密的傳輸中 ElastiCache (Redis OSS) 叢集啟用 AUTH。

若要設定高強度的字符,建議您遵循嚴格的密碼政策,例如需符合以下要求:

  • 權杖或密碼必須至少包含下列三種字元類型:

    • 大寫字元

    • 小寫字元

    • 數字

    • 非英數字元 (!&#$^<>-)

  • 令牌或密碼不得包含字典單詞或稍微修改的字典單詞。

  • 令牌或密碼不得與最近使用的令牌相同或相似。

將驗證套用至 ElastiCache (Redis OSS) 叢集

您可以要求使用者在受權杖保護的 Redis OSS 伺服器上輸入權杖 (密碼)。若要執行此操作,請在您建立複寫群組或叢集時加入有正確字符的參數 --auth-token (API: AuthToken)。而且也要在複寫群組或叢集的所有後續命令中加入。

下列 AWS CLI 作業會建立已啟用傳輸中加密 (TLS) 和AUTH權杖的複寫群組This-is-a-sample-token。將子網路群組 sng-test 取代為已存在的子網路群組。

重要參數
  • --engine - 必須為 redis

  • --engine-version - 必須是 3.2.6、4.0.10 以上版本。

  • --transit-encryption-enabled - 身分驗證及符合 HIPAA 資格的必要項目。

  • --auth-token - 符合 HIPAA 資格的必要項目。此值必須是此受權杖保護之 Redis OSS 伺服器的正確記號。

  • --cache-subnet-group - 符合 HIPAA 資格的必要項目。

若為 Linux、macOS 或 Unix:

aws elasticache create-replication-group \ --replication-group-id authtestgroup \ --replication-group-description authtest \ --engine redis \ --cache-node-type cache.m4.large \ --num-node-groups 1 \ --replicas-per-node-group 2 \ --transit-encryption-enabled \ --auth-token This-is-a-sample-token \ --cache-subnet-group sng-test

針對 Windows:

aws elasticache create-replication-group ^ --replication-group-id authtestgroup ^ --replication-group-description authtest ^ --engine redis ^ --cache-node-type cache.m4.large ^ --num-node-groups 1 ^ --replicas-per-node-group 2 ^ --transit-encryption-enabled ^ --auth-token This-is-a-sample-token ^ --cache-subnet-group sng-test

修改現有 ElastiCache (Redis OSS) 叢集上的驗證權杖

若要更輕鬆地更新驗證,您可以修改 ElastiCache (Redis OSS) 叢集上使用的AUTH權杖。如果引擎版本為 5.0.6 或更高版本,且 ElastiCache (Redis OSS) 在傳輸過程中啟用了加密,您可以進行此修改。

Auth 字符修改支援兩種策略:ROTATE 和 SET。ROTATE 策略向服務器添加了一個額外的 AUTH 令牌,同時保留以前的令牌。SET 策略更新服務器以僅支持單個 AUTH 令牌。使用 --apply-immediately 參數進行這些修改呼叫以立即套用變更。

輪換 AUTH 字符

若要使用新的 AUTH 權杖更新 Redis OSS 伺服器,請使用--auth-token參數作為新AUTH權杖呼叫 ModifyReplicationGroup API,並--auth-token-update-strategy使用值旋轉呼叫 API。ROTATE 修改完成後,除了auth-token參數中指定的權杖之外,叢集還將支援先前的 AUTH 權杖。如果在 AUTH 令牌輪換之前,在複製組上未配置 AUTH 令牌,則除了支持不進行身份驗證的連接之外,該集群還支持在--auth-token參數中指定的 AUTH 令牌。請參設定 AUTH 字符閱更新使用更新策略 SET 所需的 AUTH 令牌。

注意

如果您之前沒有設定 AUTH 字符,那麼一旦修改完成,除了 auth-token 參數中指定的字符之外,叢集將不支援任何 AUTH 字符。

如果在已經支持兩個 AUTH 令牌的服務器上執行此修改,則在此操作期間也將刪除最舊的 AUTH 令牌。這允許服務器在給定時間支持最多兩個最新的 AUTH 令牌。

此時,您可以通過更新客戶端以使用最新的 AUTH 令牌來繼續。用戶端更新後,您可以使用 AUTH 字符輪換的 SET 策略 (於以下章節說明) 以僅開始使用新的字符。

下列 AWS CLI 作業會修改複寫群組以輪換AUTH權杖This-is-the-rotated-token

若為 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-rotated-token \ --auth-token-update-strategy ROTATE \ --apply-immediately

針對 Windows:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-rotated-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

設定 AUTH 字符

要更新 Redis OSS 服務器以支持單個必需AUTH令牌,請使用與最後一個 AUTH 令牌相同的值的--auth-token參數調用 ModifyReplicationGroup API 操作,並使用該值的--auth-token-update-strategy參數。SETSET 策略只能與具有 2 個 AUTH 令牌或 1 個可選 AUTH 令牌的集群一起使用,從而使用 ROTATE 策略。修改完成後,Redis OSS 伺服器僅支援在驗證權杖參數中指定的 AUTH 權杖。

下列 AWS CLI 作業會修改要將 AUTH 權杖設定為的複寫群組This-is-the-set-token

若為 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-set-token \ --auth-token-update-strategy SET \ --apply-immediately

針對 Windows:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-set-token ^ --auth-token-update-strategy SET ^ --apply-immediately

在現有 ElastiCache (Redis OSS) 叢集上啟用驗證

若要在現有 Redis OSS 伺服器上啟用驗證,請呼叫 ModifyReplicationGroup API 作業。使用 --auth-token 參數為新的字符,以及值為 ROTATE 的 --auth-token-update-strategy 呼叫 ModifyReplicationGroup

RO AUTH TATE 修改完成後,除了支援不驗證的連線之外,叢集還支援在--auth-token參數中指定的權杖。將所有用戶端應用程式更新為使用 AUTH 權杖向 Redis OSS 進行驗證之後,請使用 SET 策略將 AUTH 權杖標記為必要。只有啟用傳輸中加密 (TLS) 的 Redis OSS 伺服器才支援啟用驗證。

從 RBAC 遷移到雷迪斯的操作系統身份驗證

如果您正在使用 Redis OSS 角色型存取控制 (RBAC) 驗證使用者 (如中所述)角色型存取控制 (RBAC) 規則數量,而且您想要移轉至 Redis OSS AUTH,請使用下列程序。您可以使用主控台或 CLI 進行遷移。

若要使用主控台從 RBAC 遷移至 Redis 的作業系統驗證
  1. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/

  2. 從右上角的清單中,選擇您要修改之叢集所在的 AWS 區域。

  3. 在導覽窗格中,選擇您要修改之叢集所執行的引擎。

    接著會出現所選引擎的叢集清單。

  4. 在叢集清單中,針對您要修改的叢集,選擇其名稱。

  5. Actions (動作) 中,選擇 Modify (修改)。

    修改視窗隨即出現。

  6. 對於存取控制,請選擇 Redis OSS AUTH 預設使用者存取權。

  7. Redis OSS 身份驗證令牌下,設置一個新的令牌。

  8. 選擇預覽變更,然後在下一個畫面上選擇修改

若要從 RBAC 移轉至 Redis 的作業系統驗證,請使用 AWS CLI

使用下列其中一個命令,為 Redis OSS 複寫群組設定新的選用AUTH權杖。請注意,可選的 Auth 令牌將允許對複製組進行未經身份驗證的訪問,直到 Auth 令牌被標記為必需,在以下步驟SET中使用更新策略。

若為 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id test \ --remove-user-groups \ --auth-token This-is-a-sample-token \ --auth-token-update-strategy ROTATE \ --apply-immediately

針對 Windows:

aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token This-is-a-sample-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

執行上述命令之後,您可以更新 Redis OSS 應用程式,以使用新設定的選用 AUTH 權杖向 ElastiCache 複寫群組進行驗證。要完成 Auth 令牌輪換,請在下面的後續命令SET中使用更新策略。這將根據需要標記為可選的 AUTH 令牌。當 Auth Token 更新完成時,複寫群組狀態將顯示為,ACTIVE且此複寫群組的所有 Redis OSS 連線都需要驗證。

若為 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id test \ --auth-token This-is-a-sample-token \ --auth-token-update-strategy SET \ --apply-immediately

針對 Windows:

aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token This-is-a-sample-token ^ --auth-token-update-strategy SET ^ --apply-immediately

如需詳細資訊,請參閱 使用 Redis 的 OSS AUTH 命令進行驗證

注意

如果您需要停用 ElastiCache 叢集上的存取控制,請參閱停用 ElastiCache Redis 的 OSS 快取上的存取控制