You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS EC2上用Argon算法哈希AWS Secrets Manager明文密码

解决方案:自动化生成Jupyter所需的Argon2密码哈希

针对你希望在AWS Secrets Manager存储明文密码、自动生成Jupyter兼容的Argon2哈希的需求,以下两种方法均可实现无交互自动化处理:

方法一:使用系统原生argon2命令行工具

这是轻量化方案,通过系统包管理器即可安装:

  1. 安装argon2工具(适用于Amazon Linux 2):
sudo yum install -y argon2 openssl
  1. 在user_data中集成自动化脚本:
# 从Secrets Manager获取明文密码
PLAIN_PWD=$(aws secretsmanager get-secret-value --secret-id ${aws_secretsmanager_secret.jupyter.arn} --query SecretString --output text)

# 生成符合Jupyter格式的Argon2哈希,参数完全匹配Jupyter默认配置
ARGON_HASHED_PWD=$(echo -n "$PLAIN_PWD" | argon2 "$(openssl rand -hex 16)" -id -m 10240 -t 10 -p 8 -e)
ARGON_HASHED_PWD="argon2:$ARGON_HASHED_PWD"

# 写入Jupyter配置文件
echo "c.ServerApp.password = u'$ARGON_HASHED_PWD'" >> /home/ec2-user/.jupyter/jupyter_notebook_config.py

方法二:使用Python脚本(贴合Jupyter原生逻辑)

如果实例已预装Python(Jupyter本身依赖Python),可直接用Jupyter同款argon2-cffi库生成哈希:

  1. 安装依赖库:
sudo pip install argon2-cffi
  1. 在user_data中内嵌脚本执行:
# 获取明文密码
PLAIN_PWD=$(aws secretsmanager get-secret-value --secret-id ${aws_secretsmanager_secret.jupyter.arn} --query SecretString --output text)

# 调用内嵌Python脚本生成哈希
ARGON_HASHED_PWD=$(python -c "$(cat << 'EOF'
import sys
from argon2 import PasswordHasher

def generate_jupyter_hash(passphrase):
    ph = PasswordHasher(
        memory_cost=10240,
        time_cost=10,
        parallelism=8,
    )
    hashed = ph.hash(passphrase)
    return f"argon2:{hashed}"

if __name__ == "__main__":
    print(generate_jupyter_hash(sys.argv[1]))
EOF
)" "$PLAIN_PWD")

# 写入配置文件
echo "c.ServerApp.password = u'$ARGON_HASHED_PWD'" >> /home/ec2-user/.jupyter/jupyter_notebook_config.py

关键说明

  • 两种方案均支持自动密码轮换:当你在AWS Secrets Manager更新明文密码后,下次实例重建时会自动生成新哈希并更新Jupyter配置,无需手动干预。
  • 参数完全匹配你提供的Jupyter哈希逻辑,确保兼容性。

内容的提问来源于stack exchange,提问作者Leonardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:56:07