GetSessionToken/GetFederationToken과 함께 Amazon S3에 임시 세션을 사용하고 있습니다. 각 사용자가 버킷을 사용하도록 생각하고 초기화 할 수 있도록 각 사용자가 S3에 업로드 할 수있는 10K 명 이상의 사용자가 필요합니다. 업로드) 권한을 각 사용자별로 설정하지만, Amazon 계정 당 버킷 수에 제한이 있기 때문에 저 아이디어를 버렸습니다.Amazon S3 권한
공개 읽기 허용과 같은 권한을 설정하고 업로드하려는 객체의 키에있는 접두사가있는 경우에만 업로드 할 수 있습니까?
예를 들어 사용자 이름 X가 파일을 업로드하면 키는 X_filename과 같아야합니다.
또는 다른 어떤 방법 으로든 보안을 유지할 수 있습니다. 이는 모바일 앱용이며 파일 업로드시 자체 서버를 거치지 않으려합니다.
편집 :
나는 다음과 같은 정책을 GetFederationToken 작업을 시도했습니다
"{
"Statement":[{
"Effect":"Allow",
"Action":["s3:PutObject","s3:GetObject","s3:GetObjectVersion",
"s3:DeleteObject",\"s3:DeleteObjectVersion"],
"Resource":"arn:aws:s3:::user.uploads/john/*"
}
]
}"
나는 세션과 버킷 S3에 user.uploads과 폴더 존
그러나 어떤 업로드가 키 john/filename을 버킷 user.uploads에 대한 액세스가 거부됨에 따라 액세스가 거부 됨 "
이 방법은 효과가 있지만 모든 것을 확인해야합니다. 예를 들어 정책이 잘못되었을 수 있습니다. - 내부 테스트를 위해 크게 열어 본 다음 좁히십시오. 또한 iOS에서 amazon S3 로의 모든 호출은 반송 된 페더레이션 토큰을 사용해야합니다. –