S3에서 젠코더 사용

Zencoder는 Amazon S3 버킷에서 파일을 업로드하고 다운로드할 수 있습니다. Zencoder에서 파일을 다운로드하려면 Everyone이 액세스할 수 있어야 하거나, Zencoder 액세스 권한을 부여하는 버킷 정책을 버킷에 추가해야 하거나, 버킷에 액세스하기 위해 계정에 자격 증명을 저장해야 합니다.

서문

Zencoder는 Amazon S3 버킷에서 파일을 업로드하고 다운로드할 수 있습니다. Zencoder에서 파일을 다운로드하려면 Everyone이 액세스할 수 있어야 하거나, Zencoder 액세스 권한을 부여하는 버킷 정책을 버킷에 추가해야 하거나, 버킷에 액세스하기 위해 계정에 자격 증명을 저장해야 합니다.

자격 증명 사용

당신은 저장할 수 있습니다신임장이를 통해 귀하의 계정을 사용하여 파일을 업로드 할 수 있습니다. 이는 귀하의 계정이 파일의 소유자이며 모든 권한과 권한을 가짐을 의미합니다. 자격 증명을 모든 업로드 및 다운로드에 대한 기본값으로 설정하거나 각 요청과 함께 참조 할 수 있지만,이를 S3의 기본값으로 설정하면 모든 S3 업로드 및 다운로드에 사용된다는 점에 유의하십시오. 일반적으로 이것은 문제가되지 않지만 나중에 타사의 버킷에 업로드하려는 경우 문제가 발생할 수 있습니다.

버킷 정책 사용

또 다른 옵션은 버킷의 모든 파일에 대한 권한을 설정할 수있는 버킷 정책을 사용하는 것입니다. 시작하려면 AWS 콘솔 . 화면 왼쪽에서 버킷을 선택한 다음 "속성"을 클릭합니다. 마지막 행에서 "버킷 정책 추가"를 클릭합니다. 아래에 버킷 정책을 함께 입력하여 버킷 정책 텍스트 상자에 복사합니다.

권장되는 버킷 정책 :

 {
"Version": "2012-10-17",
"Id": "ZencoderBucketPolicy",
"Statement": [
  {
      "Sid": "Stmt1295042087538",
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::395540211253:root"
      },
      "Action": [
      "s3:GetObjectAcl",
      "s3:GetObject",
      "s3:PutObjectAcl",
      "s3:PutObject",
      "s3:ListMultipartUploadParts"
      ],
      "Resource": "arn:aws:s3:::MY-BUCKET/*"
  },
  {
      "Sid": "Stmt1295042087538",
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::395540211253:root"
      },
      "Action": [
      "s3:ListBucketMultipartUploads",
      "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::MY-BUCKET"
  }
]
}

단지변경해야 할 한 가지준비되기 전에이 버킷 정책에 추가합니다.

  1. MY-BUCKET을 버킷 이름으로 바꿉니다. 버킷 내의 모든 파일에 정책을 적용하므로 줄 끝에 / *를 그대로 둡니다.
  2. 필요한 경우 Action 배열을 허용할 동작으로 바꿉니다. Zencoder에 필요할 수있는 유효한 작업은 다음과 같습니다.

    객체 사용 권한 - 위의 예에서 첫 번째 작업 배열

    • s3:PutObject -Zencoder가 파일을 버킷에 업로드하도록 허용
    • s3:GetObject -Zencoder가 버킷에서 파일을 다운로드하도록 허용
    • s3:GetObjectAcl -Zencoder가 파일에 대한 ACL 권한을 얻도록 허용
    • s3:PutObjectAcl -Zencoder가 파일에 대한 다른 사용자의 ACL 권한을 설정하도록 허용
    • s3:ListMultipartUploadParts -Zencoder가 멀티 파트 파일의 어느 부분이 버킷에 업로드되었는지 나열하도록 허용

    버킷 권한 - 위 예제의 두 번째 작업 배열

    • s3:GetBucketLocation -Zencoder가 버킷 (미국, EU, 아시아 등)의 위치를 가져 오도록 허용합니다.
    • s3:ListBucketMultipartUploads -Zencoder가 현재 버킷에서 발생하는 모든 멀티 파트 업로드를 볼 수 있도록 허용

      ex: Zencoder가 파일을 다운로드하고 업로드 할 수 있도록하려면 첫 번째 Action 배열을 다음으로 바꿉니다.

      ["s3:PutObject", "s3:GetObject"]

정책에는 두 개의 문이 있습니다. 첫 번째 문은 버킷 내의 키에 영향을 미치고 두 번째 부분은 버킷 자체에 영향을줍니다.

나머지 정책은 홀로 남겨 둘 수 있으며 잘 작동합니다. Amazon 설명서에는버킷 정책의 요소에 대한 자세한 정보가 포함되어 있습니다.

Zencoder는 또한 저희가 생성 한 동영상 및 미리보기 이미지에 ACL 권한을 설정할 수 있습니다. 이것은 우리의 S3 API 문서 .

참고: 버킷 정책을 사용할 때 항상 s3 : // BUCKET / KEY 형식의 URL을 사용해야 Zencoder가 URL을 S3 URL로 식별하고 요청에 적절하게 서명 할 수 있습니다.

자체 버킷 정책을 구축하려는 경우 다음을 사용할 수 있습니다. 아마존의 정책 생성기 . 사용하다 arn : aws : iam :: 395540211253 : root Zencoder 액세스를 허용하기 위해 AWS Principal로.

특정 파일

특정 파일에 대한 권한 만 부여 할 수 있습니까?

당신은 확실히 할 수 있습니다. 버킷 정책 접근 방식은 일반적으로 더 쉽고 빠르지 만 모든 사람에게 적합하지는 않습니다. 본인 인 경우 Amazon AWS 계정에 권한을 부여 할 수 있습니다. aws@zencoder.com .

대신 표준 ID를 사용해야하는 경우 다음을 사용할 수 있습니다. 6c8583d84664a381db0c6af0e79b285ede571885fbe768e7ea50e5d3760597dd .

문제 해결

여전히 허가가 거부되었습니다!

액세스가 거부되었거나 파일을 찾을 수없는 경우 S3는 "액세스 거부 됨"으로 응답합니다. S3 자격 증명 또는 버킷 정책을 올바르게 설정했지만 여전히 "액세스 거부"오류가 발생한다면 제출중인 URL을 다시 확인하십시오. 입력이 다음과 같은 경우"s3://my-bucket/this+file+is+great.mp4" , 실제로 원하는 것이 좋은 기회가 있습니다. "s3://my-bucket/this file is great.mp4"

EU 프랑크푸르트 지역을 사용할 때 오류가 발생합니다!

Zencoder와 함께 EU 프랑크푸르트 리전을 사용하려면 리전 이름이 포함 된 S3 URL을 생성해야합니다. 이렇게하려면 다음과 같은 URL을 만드십시오. "s3+eu-central-1://my-bucket/file.mp4" .