在AWS CDK中,当尝试部署静态S3网站时,可能会遇到“访问被拒绝”的错误。这通常是由于缺少正确的权限或策略所致。以下是一些可能的解决方法:
read
和write
权限。例如:const bucket = new s3.Bucket(this, 'MyBucket', {
// ...
websiteIndexDocument: 'index.html',
websiteErrorDocument: 'error.html',
publicReadAccess: true, // 添加公共读访问权限
});
PutObject
和GetBucketWebsite
权限。您可以使用以下命令为用户添加适当的权限:aws iam attach-policy-to-user --user-name --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
请注意,这仅是一个示例策略,您应根据您的特定需求进行调整。
export AWS_REGION=
上述解决方法中的代码示例是使用AWS CDK的TypeScript库编写的,您可以根据您使用的编程语言和库进行相应的调整。