

本指南記載於 2025 年 3 月 13 日發行的新 AWS Wickr 管理主控台。如需 AWS Wickr 管理主控台傳統版本的文件，請參閱[傳統管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide-classic/what-is-wickr.html)。

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

# 密碼復原指示
<a name="password-recovery-instruction"></a>

## 概觀
<a name="password-recovery-overview"></a>

在資料保留帳戶產生流程中，如果服務偵測到已設定的資料保留機器人，但沒有無伺服器資料保留，則會將密碼收集指令碼 (`collect.py`) 上傳到您的 S3 儲存貯體。您需要在本機下載並執行此指令碼，以提供 Wickr 資料保留密碼，以便服務可以復原機器人的身分。

在執行指令碼之前，請確認您的 IAM 角色或使用者具有密碼復原金鑰和 S3 儲存貯體所需的許可。請參閱以下密碼復原金鑰政策一節來設定存取。

## 密碼復原金鑰政策
<a name="password-recovery-policy"></a>

若要執行密碼復原指令碼，執行它的 IAM 主體需要下列許可：
+ 密碼復原金鑰上的 kms:GetPublicKey 
+ DRS S3 儲存貯體上的 s3：PutObject 

### 尋找您的資源 ARNs
<a name="password-recovery-policy-arn"></a>

如果密碼復原金鑰是由產品產生，您可以在 Service Catalog 輸出中找到金鑰 ARN：

1. 開啟 AWS Service Catalog 主控台

1. 導覽至佈建產品。

1. 選取您的 Wickr 資料保留產品。

1. 開啟 **Outputs (輸出)** 標籤。

1. 找到 **PasswordRecoveryKeyArn** 輸出。

1. 找到 **RetentionBucketName** 輸出。

### 新增必要的許可
<a name="password-recovery-policy-permission"></a>

將下列陳述式新增至密碼復原 KMS 金鑰政策。將 {your-role-or-user-arn} 取代為將執行指令碼的 IAM 角色或使用者的 ARN。

```
{
  "Sid": "PasswordRecoveryScriptAccess",
  "Effect": "Allow",
  "Principal": { "AWS": "{your-role-or-user-arn}" },
  "Action": "kms:GetPublicKey",
  "Resource": "*"
}
```

相同的主體還需要資料保留 DRS S3 儲存貯體上的 s3：PutObject。透過連接至角色或使用者的 IAM 身分政策授予此許可。

**注意**  
只有在遷移先前在 Docker-bot 資料保留下加密的資料時，才會使用密碼復原金鑰。

## Python 指令碼指南
<a name="password-recovery-script"></a>

指令碼需要：
+ Python 3.8 或更新版本 （建議使用 3.10\+)
+ pip (Python 套件管理員，隨附於 Python 3.4\+)
+ 兩個 Python 套件： `boto3` 和 `cryptography`
+ AWS 登入資料已設定為可存取您的 DRS KMS 金鑰和 S3 儲存貯體

## Windows
<a name="password-recovery-windows"></a>

### 安裝 Python
<a name="password-recovery-windows-install"></a>

1. 從 [python.org](https://www.python.org) 下載最新的 Python 安裝程式 — 選擇適用於 Python 3.10 或更新版本的「Windows 安裝程式 (64 位元）」。

1. 執行安裝程式。勾選第一個畫面底部的將 **python.exe 新增至 PATH** 方塊，然後選擇**立即安裝**。

1. 開啟命令提示字元或 PowerShell 來驗證安裝：

   ```
   python --version
   ```

   您應該會看到類似 `Python 3.10.x`或更新版本的輸出。

1. 驗證 pip 是否可用：

   ```
   pip --version
   ```

### 安裝相依項目
<a name="password-recovery-windows-deps"></a>

開啟命令提示字元或 PowerShell 並執行：

```
pip install boto3 cryptography
```

### 設定 AWS 登入資料
<a name="password-recovery-windows-creds"></a>

請確定您的 AWS 登入資料已設定。最簡單的方法是使用 AWS CLI：

```
aws configure
```

提供您的存取金鑰 ID、私密存取金鑰和預設區域。登入資料必須具有：
+ `kms:GetPublicKey` 在您的 DRS 密碼復原金鑰上
+ `s3:PutObject` 在您的 DRS S3 儲存貯體上
+ `s3:GetObject` 在您的 DRS S3 儲存貯體上 （下載指令碼）

### 下載並擷取指令碼
<a name="password-recovery-windows-download"></a>

1. 從 S3 儲存貯體下載 zip 檔案：

   ```
   aws s3 cp s3://{{your-bucket}}/wickr-drs-password-tool/collect.zip .
   ```

1. 解壓縮 zip 檔案：

   ```
   Expand-Archive -Path collect.zip -DestinationPath .
   ```

1. （選用） 驗證指令碼檢查總和符合 Wickr AWS 主控台中顯示的值：

   ```
   certutil -hashfile collect.py SHA256
   ```

   預期的雜湊檔案結果為：

   ```
   31c5c85ec16587fbc284ed963bc0cae3723713ea9cb54a2cdc3941726bcc662a
   ```

### 執行指令碼
<a name="password-recovery-windows-run"></a>

```
python collect.py
```

成功完成之後，請刪除本機檔案：

```
del collect.py config.json collect.zip
```

## macOS
<a name="password-recovery-macos"></a>

### 安裝 Python
<a name="password-recovery-macos-install"></a>

macOS 隨附系統 Python，但可能已過期。使用下列其中一種方法安裝目前版本：

**選項 A：官方安裝程式 （簡單）**  


1. 從 [python.org](https://www.python.org) 下載 macOS 安裝程式 — 選擇 Python 3.10 或更新版本。

1. 執行`.pkg`安裝程式並依照提示操作。

1. 驗證：

   ```
   python3 --version
   ```

**選項 B：Homebrew**  
如果您已安裝 Homebrew：

```
brew install python@3.12
```

驗證：

```
python3 --version
```

### 安裝相依項目
<a name="password-recovery-macos-deps"></a>

```
pip3 install boto3 cryptography
```

如果您收到許可錯誤，請使用：

```
pip3 install --user boto3 cryptography
```

### 設定 AWS 登入資料
<a name="password-recovery-macos-creds"></a>

```
aws configure
```

提供您的存取金鑰 ID、私密存取金鑰和預設區域。登入資料必須具有：
+ `kms:GetPublicKey` 在您的 DRS 密碼復原金鑰上
+ `s3:PutObject` 在您的 DRS S3 儲存貯體上
+ `s3:GetObject` 在您的 DRS S3 儲存貯體上 （下載指令碼）

### 下載並擷取指令碼
<a name="password-recovery-macos-download"></a>

1. 從 S3 儲存貯體下載 zip 檔案：

   ```
   aws s3 cp s3://{{your-bucket}}/wickr-drs-password-tool/collect.zip .
   ```

1. 解壓縮 zip 檔案：

   ```
   unzip collect.zip
   ```

1. （選用） 驗證指令碼檢查總和：

   ```
   shasum -a 256 collect.py
   ```

   預期的 shasum 結果為：

   ```
   31c5c85ec16587fbc284ed963bc0cae3723713ea9cb54a2cdc3941726bcc662a
   ```

   將輸出與 Wickr AWS 主控台中顯示的檢查總和進行比較。

### 執行指令碼
<a name="password-recovery-macos-run"></a>

```
python3 collect.py
```

成功完成之後，請刪除本機檔案：

```
rm collect.py config.json collect.zip
```

## Linux
<a name="password-recovery-linux"></a>

### 安裝 Python
<a name="password-recovery-linux-install"></a>

大多數 Linux 發行版本都包含 Python 3。檢查您目前的版本：

```
python3 --version
```

如果未安裝 Python 或低於 3.8，請使用分發的套件管理員進行安裝：

**Ubuntu/Debian**  


```
sudo apt update
sudo apt install python3 python3-pip
```

**Amazon Linux 2023 / Fedora / RHEL 9\+**  


```
sudo dnf install python3 python3-pip
```

**Amazon Linux 2 / RHEL 7-8 / CentOS 7-8**  


```
sudo yum install python3 python3-pip
```

驗證：

```
python3 --version
pip3 --version
```

### 安裝相依項目
<a name="password-recovery-linux-deps"></a>

```
pip3 install boto3 cryptography
```

如果您收到許可錯誤，請使用：

```
pip3 install --user boto3 cryptography
```

### 設定 AWS 登入資料
<a name="password-recovery-linux-creds"></a>

```
aws configure
```

提供您的存取金鑰 ID、私密存取金鑰和預設區域。登入資料必須具有：
+ `kms:GetPublicKey` 在您的 DRS 密碼復原金鑰上
+ `s3:PutObject` 在您的 DRS S3 儲存貯體上
+ `s3:GetObject` 在您的 DRS S3 儲存貯體上 （下載指令碼）

### 下載並擷取指令碼
<a name="password-recovery-linux-download"></a>

1. 從 S3 儲存貯體下載 zip 檔案：

   ```
   aws s3 cp s3://{{your-bucket}}/wickr-drs-password-tool/collect.zip .
   ```

1. 解壓縮 zip 檔案：

   ```
   unzip collect.zip
   ```

   如果 `unzip` 未安裝： `sudo apt install unzip` (Debian/Ubuntu) 或 `sudo dnf install unzip`(Fedora/RHEL/AL2023)。

1. （選用） 驗證指令碼檢查總和：

   ```
   sha256sum collect.py
   ```

   預期的 sha256sum 結果為：

   ```
   31c5c85ec16587fbc284ed963bc0cae3723713ea9cb54a2cdc3941726bcc662a
   ```

   將輸出與 Wickr AWS 主控台中顯示的檢查總和進行比較。

### 執行指令碼
<a name="password-recovery-linux-run"></a>

```
python3 collect.py
```

成功完成之後，請刪除本機檔案：

```
rm collect.py config.json collect.zip
```