Amazon S3 콘솔을 통해 Amazon Simple Storage Service(Amazon S3) 버킷에 파일을 업로드하려고 합니다. 하지만 ‘403 Forbidden’ 오류가 발생합니다.
간략한 설명
‘403 Forbidden’ 오류는 다음과 같은 이유로 발생할 수 있습니다.
해결 방법
s3:PutObject 또는 s3:PutObjectACL에 대한 권한을 확인하세요.
다음 단계를 따르세요.
- AWS Identity and Access Management(IAM) 콘솔을 엽니다.
- 버킷에 액세스하는 데 사용되는 ID(예: 사용자 또는 역할)로 이동합니다. ID의 이름을 선택합니다.
- 권한 탭을 선택한 다음, 각 정책을 확장하여 해당 JSON 정책 문서를 확인합니다.
- JSON 정책 문서에서 Amazon S3 액세스와 관련된 정책을 검색합니다. 그런 다음, 버킷에서 s3:PutObject 또는 s3:PutObjectAcl 작업에 대한 권한이 있는지 확인합니다.
AWS KMS 키 사용 권한 요청
AWS KMS로 암호화된 객체를 업로드하려면 AWS KMS 작업을 수행할 권한이 있어야 합니다. 최소한 kms:Decrypt 및 kms:GenerateDataKey 작업을 수행할 수 있어야 합니다.
중요: 다른 AWS 계정의 버킷에 객체를 업로드하는 경우AWS 관리형 키 aws/S3을 기본 암호화 키로 사용할 수 없습니다. 이는 AWS 관리형 키 정책을 수정할 수 없기 때문입니다.
버킷 정책에 명시적 거부 명령문이 있는지 확인
다음 단계를 따르세요.
- Amazon S3 콘솔을 엽니다.
- 버킷 목록에서 파일을 업로드하려는 버킷을 엽니다.
- 권한 탭을 선택합니다.
- 버킷 정책을 선택합니다.
- **"Effect": "Deny"**가 포함된 문을 검색합니다.
- 이러한 설명을 검토하여 버킷으로의 업로드를 방해하지 않는지 확인하세요.
중요: **“Effect”: “Deny”**가 포함된 버킷 정책을 저장하기 전에 S3 버킷에 대한 액세스를 거부하는 명령문이 있는지 확인하십시오. 잠긴 경우 실수로 모든 사용자의 액세스를 거부한 후 Amazon S3에 다시 액세스하려면 어떻게 해야 합니까?를 참조하십시오.
다음 예제 명령문은 업로드 요청에서 ARN이 arn:aws:kms:us-east-1:111122223333:key와 일치하는 AWS KMS 키로 객체를 암호화하지 않는 한 example-bucket에서 s3:PutObject에 대한 액세스를 명시적으로 거부합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExampleStmt",
"Action": [
"s3:PutObject"
],
"Effect": "Deny",
"Resource": "arn:aws:s3:::example-bucket/*",
"Condition": {
"StringNotLikeIfExists": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
}
},
"Principal": "*"
}
]
}
요청에서 퍼블릭 ACL을 제거하거나 S3 Block Public Access 비활성화
PUT 요청에서 public-read 또는 authenticated-read와 같은 퍼블릭 ACL을 전달하는 경우, 퍼블릭 ACL은 S3 객체를 퍼블릭으로 설정합니다. 이 계정 또는 버킷에 대해 S3 Block Public Access 기능이 활성화되어 있는 경우 업로드 요청이 거부됩니다.
참고: 사용 사례에 필요한 경우에만 객체를 퍼블릭으로 설정하는 것이 좋습니다.
객체를 공개적으로 사용 가능한 객체로 성공적으로 업로드하려면 필요에 따라 S3 액세스 차단 기능을 수정하십시오. 사용 사례에서 객체를 공개적으로 사용할 수 있도록 설정할 필요가 없는 경우에는 PUT 요청에서 언급된 퍼블릭 ACL을 삭제하십시오.
계정 수준에서 S3 Block Public Access 설정을 구성하려면 계정에 대한 퍼블릭 액세스 차단 설정 구성을 참조하십시오. 버킷 수준에서 설정을 구성하려면 S3 버킷에 대한 퍼블릭 액세스 차단 설정 구성을 참조하십시오. 또한 퍼블릭 액세스 설정에 대한 자세한 내용은 ‘퍼블릭’의 의미를 참조하십시오.
AWS Organizations의 서비스 제어 정책 검토
AWS Organizations를 사용하는 경우 서비스 제어 정책이 Amazon S3 작업을 명시적으로 거부하는지 확인하십시오. 거부하는 경우 정책을 원하는 대로 수정하십시오.
관련 정보
Amazon S3의 403 액세스 거부 오류를 해결하려면 어떻게 해야 하나요?
Amazon S3에서 버킷 정책을 수정하려고 할 때 ‘You don't have permissions to edit bucket policy’ 오류를 해결하려면 어떻게 해야 합니까?
Amazon S3의 액세스 거부(403 Forbidden) 오류 해결