Amazon S3: Amazon Cognito 사용자가 자체 버킷의 객체에 접근하게 허용하기
Amazon S3: Amazon Cognito 사용자가 자체 버킷의 객체에 접근하게 허용하기
이 예시는 Amazon Cognito 사용자가 특정 Amazon S3 버킷의 객체에 접근할 수 있게 허용하는 자격 증명 기반 정책을 만드는 방법을 보여드려요. 이 정책은 이름에 cognito, 애플리케이션 이름, 그리고 ${cognito-identity.amazonaws.com:sub} 변수로 표현되는 연합(federated) 프린시펄 ID가 포함된 객체에만 액세스를 허용해요.
출처: 문서
본문
이 정책은 AWS API나 AWS CLI에서 프로그래매틱하게 작업을 완료하는 데 필요한 권한을 부여해요. 예시 정책에서 이탤릭체로 표시된 자리표시자 텍스트를 본인 정보로 바꾼 뒤, create a policy 또는 edit a policy의 지침을 따라 적용하면 돼요.
참고
객체 키에 사용된 sub 값은 User Pool의 사용자 sub 값이 아니라, Identity Pool에서 사용자와 연결된 자격 증명 ID예요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "ListYourObjects",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::bucket-name"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
]
}
}
},
{
"Sid": "ReadWriteDeleteYourObjects",
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
]
}
]
}
Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여, 사용자 관리를 제공해요. 사용자는 사용자 이름과 비밀번호로 직접 로그인하거나 Facebook, Amazon, Google 같은 제3자를 통해 로그인할 수 있어요. Amazon Cognito의 두 가지 주요 구성 요소는 사용자 풀(user pools)과 자격 증명 풀(identity pools)이에요. 사용자 풀은 앱 사용자에게 가입과 로그인 옵션을 제공하는 사용자 디렉터리예요. 자격 증명 풀은 사용자에게 다른 AWS 서비스에 접근할 권한을 부여해요. 자격 증명 풀과 사용자 풀을 함께 또는 별도로 사용할 수 있어요. Amazon Cognito에 대해 더 알아보려면 Amazon Cognito User Guide 문서를 참고하세요.