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 문서를 참고하세요.

더 알아보기 (Learn more)