我在aws s3存储桶上托管了一个静态网站。我正在使用一些不同的api,如谷歌,trello等。我不知道如何将这些密钥保密,因为我设置我的桶以使用PublicReadForGetBucketObjects
使整个网站公开。我查看了AssumeRoleWithWebIdentity
和限制访问权限,但仍然无法弄清楚如何将我的一个文件设为私有。在我看来,这可能很容易,但我找不到办法。
这是我的存储桶政策的样子
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[my bucket]/*"
}
]
}
由于
答案 0 :(得分:2)
您列出的政策可以根据路径应用权限。例如,将资源设置为arn:aws:s3:::[my bucket]/public/*
只会使公共子目录公开(或更准确地说,任何以/public/
开头的路径)。
同样,策略还可以定义专门拒绝的路径,该路径将覆盖允许(因此您可以将所有内容公开,但然后明确拒绝某些文件和路径)
但是,您提到您希望将某些文件保密,但这是一个静态网站,没有计算组件。只有'某些人不可能做到这一点。您的网站访问所需的对象,因为所有的逻辑都在您的用户中进行'浏览器而不是您的Web服务器。因此,文件可以是公共文件,也可以是私有文件,但私有文件无法作为静态网站的一部分进行访问。这可能不是你想要实现的目标。