AWS 签名桶设置
配置您的签名密钥和 S3 桶
信息
这些说明适用于生产环境,其中验证者密钥存在于 AWS 的密钥管理服务中,验证者签名公开发布在 S3 桶中。
如果您仅打算 运行一个用于测试或开发目的的验证者,请考虑遵循 本地设置指南。
1. 创建 AWS IAM 用户和签名密钥
请按照 代理密钥 中的说明生成 AWS IAM 用户,并生成 KMS 密钥或十六进制密钥。您将在接下来的步骤中使用此密钥的凭据。
2. 创建 S3 桶
信息
请注意,步骤 1(创建 IAM 用户)是设置 S3 桶所必需的,因此无论使用何种类型的密钥都必须执行此步骤。
您的验证者将把其签名发布到此桶中。
- 在 AWS 控制台中转到 AWS 的 S3。
- 在右侧,点击橙色的“创建桶”按钮。
- 选择一个信息丰富的桶名称,例如
hyperlane-validator-signatures-${validator_name}-${chain_name}
。 - 考虑选择与您在上一步中创建的 KMS 密钥相同的区域。
- 保持推荐的“禁用 ACL”设置以进行对象所有权。
- 配置公共访问设置,以便中继器可以读取您的签名。
- 取消选中“阻止所有公共访问”。
- 选中前两个选项以阻止通过访问控制列表的访问。
- 保持最后两个选项未选中,我们将通过桶策略授予公共读取访问权限。
- 确认这些设置可能会导致您的桶公开访问。
- 其余默认设置是可以的,点击底部的橙色“创建桶”按钮。
3. 配置 S3 桶权限
您的验证者 IAM 用户需要写入权限,并且应该对中继器公开可读。
- 返回 AWS 控制台中的“身份和访问管理(IAM)”。
- 在“IAM 资源”下,您应该看到至少一个“用户”,点击进入。
- 点击您之前配置的用户的名称(例如
hyperlane-validator-${chain_name}
)。 - 将“用户 ARN”复制到剪贴板,它应该类似于
arn:aws:iam::791444913613:user/hyperlane-validator-${chain_name}
。 - 返回 AWS 控制台中的“S3”。
- 点击您刚创建的桶的名称。
- 在桶名称下方,点击“权限”。
- 向下滚动到“桶策略”,然后点击“编辑”。
- 输入以下内容。桶 ARN 显示在您输入策略的地方上方。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": ["${BUCKET_ARN}", "${BUCKET_ARN}/*"]
},
{
"Effect": "Allow",
"Principal": {
"AWS": "${USER_ARN}"
},
"Action": ["s3:DeleteObject", "s3:PutObject"],
"Resource": "${BUCKET_ARN}/*"
}
]
}
提示
高级用户可以考虑使用 S3 Terraform 模块 来创建具有正确权限的 S3 桶。