s3authbasic
项目描述
s3authbasic
s3authbasic 是一个Pyramid应用程序,旨在为存储在Amazon S3中的静态网站提供服务,这些网站通过Auth Basic认证进行保护。您需要一个具有其凭证并具有对包含静态文件的存储桶的读取访问权限的IAM用户。
Amazon 设置
我假设您有一个受保护的存储桶。要创建具有正确权限的IAM用户,您需要转到AWS控制台中的 IAM 应用。
点击“用户”部分,然后点击蓝色的“创建新用户”按钮。
输入您想要的用户名。它不能包含空格。然后点击“创建”。
点击“下载凭证”或记下凭证信息。
现在,我们需要添加策略以授予用户读取访问权限。
点击创建的用户,然后转到下面的“权限”选项卡。
点击“附加用户策略”。
点击“自定义策略”并点击“选择”按钮。
给策略一个名称,例如 s3-reader-policy。
将以下块复制到“策略文档”框中。请将 protected-html 替换为您的存储桶名称。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::protected-html",
"arn:aws:s3:::protected-html/*"
]
}
]
}
应用部署
我建议您使用virtualenv,但在此文档中我没有使用它。
pip install s3authbasic
您需要一个Pyramid ini设置文件。您可以在github仓库的config-templates目录中找到一个 示例。
配置
您可以通过编辑设置文件或使用环境变量来配置应用程序。
如果您想使用文件,则AWS和用户设置在文件中有说明。
AWS环境变量如下所示
export AWS_BUCKET_NAME='bucketname'
export AWS_SECRET_ACCESS_KEY='12312sdf32'
export AES_ACCESS_KEY_ID='123123123aaa'
要定义可以访问应用程序的用户,变量应以 USER_ 开头。用户名是下划线后面的单词,应使用正确的首字母大写进行定义。也就是说,如果您想有一个名为 admin 的用户,您应该创建环境变量 USER_admin。
您可以按需设置多个用户。
密码应使用sha256散列。
您可以在Linux中使用此命令获取密码的散列值
echo -n thepassword | sha256sum
环境变量应如下所示
export USER_admin='123123123123123123123'
注意:在0.1.3版本中,我们为密码添加了utf-8编码选项,因此如果您想使用非ASCII字符,散列值可能会变化。您可以在终端中使用类似以下内容。您需要从pypi获取hashlib包。
from hashlib import sha256
sha256('your password!!'.encode('utf-8')).hexdigest()
启动应用程序
如果您已自定义ini文件,则应使用以下命令
pserve development.ini
否则,您可以使用此命令
run-s3authbasic
如果您正在使用默认的ini文件,则应用程序应在6543端口上可用。如果您在自己的系统中部署了应用程序,您可以通过 http://127.0.0.1:6543/ 访问它
0.1.3
修复UTF8密码问题
0.1.2
修复包含空格的路径
修复设置相对位置和默认包位置检测
0.1.1
修复WebTest错误
添加heroku需要的文件
0.1
第一个发布版本
0.0
初始版本