

本指南记录了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 在密码恢复密钥上
+ s3：PutObject 在 DRS S3 存储桶上

### 查找您的资源 ARN
<a name="password-recovery-policy-arn"></a>

如果您的密码恢复密钥是由产品生成的，则可以在 Service Catalog 输出中找到密钥 ARN：

1. 打开 S AWS ervice 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 存储桶PutObject 上使用 s3:。通过附加到角色或用户的 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. 从 pyth [on.org 下载最新的 Python 安装程序 — 选择 P](https://www.python.org) ython 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 下载 macOS 安装程序 — 选择 Python](https://www.python.org) 3.10 或更高版本。

1. 运行`.pkg`安装程序并按照提示进行操作。

1. 验证:

   ```
   python3 --version
   ```

**选项 B：自制**  
如果你安装了 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
```

**亚马逊 Linux 2023 /Fedora /RHEL 9\+**  


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

**亚马逊 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
```