创建用于Django S3服务的IAM用户缺失Access key ID问题咨询
解决IAM用户Access Key ID/Secret获取问题
一、获取Access Key ID和Secret Access Key的正确步骤
你之前创建用户时未生成访问密钥,因为当前AWS默认不会自动为IAM用户创建访问密钥,需手动添加:
- 登录AWS控制台,进入IAM服务
- 左侧导航栏点击「用户」,找到为Django项目创建的IAM用户
- 进入用户详情页,切换到「安全凭证」标签页
- 滚动到「访问密钥」区域,点击「创建访问密钥」
- 在弹出页面选择使用场景(比如「应用程序运行在外部服务」,匹配你的Django本地/线上环境),点击「下一步」
- 可选添加描述标签,之后点击「创建访问密钥」
- 此时页面会显示Access Key ID和Secret Access Key,点击「下载.csv文件」保存(该CSV包含你需要的两个密钥),或手动复制记录(注意Secret Access Key仅会显示这一次,后续无法再查看)
二、新旧界面的差异原因
旧教程中创建用户时直接生成访问密钥,是因为早期AWS IAM用户创建流程默认包含访问密钥创建选项;现在AWS为提升安全合规性调整了流程:
- 新创建的IAM用户默认仅启用控制台登录(所以你下载的CSV只有用户名、密码和控制台URL)
- 访问密钥需单独创建,且会引导确认使用场景,避免不必要的密钥生成,降低泄露风险
三、额外注意事项
- 给该IAM用户分配仅S3相关的最小权限,比如
AmazonS3FullAccess(或更精细的权限,仅允许读写指定的django-foo-python-bucket),避免授予管理员权限 - 在Django的
settings.py中配置时,确保将获取到的密钥正确填入对应字段 - 线上环境不要将密钥硬编码在代码中,建议用环境变量或AWS Secrets Manager管理
内容的提问来源于stack exchange,提问作者Paweł Pedryc
相关产品推荐
相关产品推荐

