데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      AWS MediaConvert 를 활용한 동영상 스트리밍 서비스 구축기 - 2편

      안전을최우선으로 25.08.01
      898 4 3
      DEVOTEE 요약
      IAM의 임시 자격 증명은 보안을 강화하기 위한 단기 인증 시스템으로, AWS 리소스 접근 시 AssumeRole을 통해 필요한 권한을 부여받습니다. S3 버킷 설정은 MediaConvert 사용을 위해 input/output 폴더 생성, 퍼블릭 액세스 차단, 버킷 정책, 객체 소유권 및 CORS 설정을 포함하여 진행됩니다. 자세한 내용은 IAM 사용자 및 역할 생성, 그리고 S3와의 연동 과정에서 적용됩니다.
      DEVOTEE 추천 블로그

      들어가며

      1편에 이어서 2편은 IAM 나머지 설정(임시 자격 증명)과 S3 버킷 설정을 진행해 보겠습니다.

      1편은 아래를 참고해 주세요.

      AWS MediaConvert 를 활용한 동영상 스트리밍 서비스 구축기 - 1편


      임시 자격 증명(IAM)

      장기 자격 증명과는 반대되는 개념.

      먼저 장기 자격 증명은 보통 app 등에서 aws 리소스 접근시 aws 유저의 acesskey, secretkey를 입력해서 접근하게 되는데 이 acesskey, secretkey 가 유출(github등) 되면 제한없이 aws 리소스 접근이 되기 때문에 보안에 취약하다.

      임시 자격 증명은 단기로 사용할 수 있는 자격 증명이다.

      몇분에서 몇시간 까지 지속시간이 정해져 있어서 '임시' 라는 말이 들어간다. 자격 증명이 만료된 이후에는 어떤 종류의 액세스도 허용되지 않는다.

      장기 자격 증명 보다는 다소 번거로운 작업들이 있지만 대신 보안에 뛰어나다.

      임시 자격 증명 Flow

      임시자격증명 Flow


      IAM User(깡통)가 특정 Role의 모자를 써서 마치 권한이 있는 User처럼 되는걸 AssumeRole 이라고 한다.

      클라이언트(app등)에서 프로그래밍 방식으로 접근할때도 위 Flow대로 개발하여 접근해야 한다.


      IAM User

      AWS에 접근이 가능하지만, 아무런 권한이 없는 깡통 유저

      STS

      IAM User가 역할로부터 임시 토큰을 얻기 위한 시스템.

      Role

      특정 AWS 리소스 권한을 가지고 있는 역할(S3 라던지 Lambda 등등)


      User 및 Role 생성

      User 생성

      아무권한 없는 aws 유저를 먼저 생성한다.(아무것도 설정 안하고 계속 다음 다음... )




      사용자 생성후에 액세스키를 만든다(클라이언트에서 접속하기 위한)

      "액세스 키 만들기" 클릭하여 생성 → accesskey / secretkey를 잘 보관하여 사용하는 클라이언트에게 전달


      권한 추가

      만든 유저 클릭 → 권한 추가 → 인라인 정책 생성


      서비스 선택 → STS 선택


      쓰기 → "AssumeRole" 선택

      리소스 → "모두" 선택


      정책 이름 입력후 생성


      Role 생성

      IAM → 역할 → 역할 생성

      신뢰할 수 있는 엔티티 유형 → AWS 계정 → 이 계정 선택


      AmazonS3FullAccess 선택


      역할 이름 입력후 생성


      ARN 확인(ARN 정보를 클라이언트에게 전달해야 한다)


      임시권한 획득을 위해 클라이언트에게 제공할 데이터

      • IAM User(권한 없는 깡통유저)의 accessKey / secretKey.

      • 역할(Role)의 ARN 정보

      • Region


      S3 설정

      버킷 이름은 {환경}-ifland-s3-mediaconvert 로 생성

      폴더 생성

      버킷 생성후 input 폴더와 output 폴더 생성

      폴더명

      설명

      input

      원본 동영상이 업로드 되는 폴더, 업로드 되면 mediaConvert에서 자동으로 HLS 변환이 이루어 진다.

      output

      input 폴더에 있는 동영상이 HLS 로 변환뒤에 업로드 되는 폴더



      퍼블릭 액세스 차단 설정

      권한 → 퍼블릭 엑세스 차단 → 편집


      아래 3개 차단 정책 체크

      • 임의의 ACL(액세스 제어 목록)을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단

      • 새 퍼블릭 버킷 또는 액세스 지점 정책을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단

      • 임의의 퍼블릭 버킷 또는 액세스 지점 정책을 통해 부여된 버킷 및 객체에 대한 퍼블릭 및 교차 계정 액세스 차단


        "새 ACL(액세스 제어 목록)을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단" 까지 체크시, mediaConvert에서 S3 접근시 Access denied 오류가 발생.


        버킷 정책

        권한 → 버킷정책

        버킷 정책에 Cloud Front 생성시 같이 생성한 OAC 정책을 복붙해줌.

        (Cloud Front 생성 방법은 다음편에 연재 예정입니다!!)

      {
          "Version": "2008-10-17",
          "Id": "PolicyForCloudFrontPrivateContent",
          "Statement": [
              {
                  "Sid": "AllowCloudFrontServicePrincipal",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "cloudfront.amazonaws.com"
                  },
                  "Action": "s3:GetObject",
                  "Resource": "arn:aws:s3:::sandbox-ifland-mediaconvert-s3/*",
                  "Condition": {
                      "StringEquals": {
                          "AWS:SourceArn": "arn:aws:cloudfront::xxxxxxxxx:distribution/xxxxxxx"
                      }
                  }
              }
          ]
      }


      객체 소유권

      권한 → 객체소유권 편집


      "ACL 활성화됨", "버킷 소유자 선호" 체크 후 저장


      위 설정을 하지 않으면 mediaConvert에서 S3 접근시 ACL 오류 발생.


      CORS 설정

      권한(Permissions) 탭을 선택.

      CORS(Cross-Origin 리소스 공유) 섹션에서 편집을 선택.

      CORS 구성 텍스트 상자에서 아래 CORS 구성을 복사하여 붙여 넣는다.

      [
          {
              "AllowedOrigins": [
                  "*"
              ],
              "AllowedMethods": [
                  "GET"
              ],
              "AllowedHeaders": [
                  "*"
              ],
              "ExposeHeaders": []
      
          }
      ]                         


      마치며

      바쁘다는 핑계로 2편이 좀 늦어졌네요.

      다음 연재는 더 빠르게 할수 있도록 노력하겠습니다!!!

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      안전을최우선으로 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기