기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: 선택적 다중 버킷 액세스로 AWS Transfer Family 웹 앱 설정
이 자습서에서는 단일 사용자에 대한 특정 Amazon S3 버킷 권한으로 Transfer Family 웹 앱을 구성하는 방법을 안내합니다. 보안을 유지하면서 사용자가 한 버킷에서 다운로드하여 다른 버킷으로 업로드할 수 있는 솔루션을 설정하는 방법을 알아봅니다. 이 자습서는 기본 자습서에서 다루는 개념을 기반으로 하는 고급 자습서입니다. AWS Transfer Family 웹 앱을 처음 사용하는 경우 로 시작하는 것이 좋습니다자습서: 기본 Transfer Family 웹 앱 설정.
사전 조건
이 튜토리얼을 시작하려면 다음이 필요합니다.
-
AWS Transfer Family 웹 앱과 동일한 리전에 구성된 IAM Identity Center. 는 AWS 모든 리전에 대해 AWS 계정당 하나의 IAM Identity Center 인스턴스만 허용합니다.
-
IAM Identity Center에 구성된 사용자가 한 명 이상 있습니다.
-
S3 버킷 2개: 다운로드용 버킷 1개와 업로드용 버킷 1개.
참고
이 자습서에서는 기본 웹 앱 자습서와 많은 사전 조건을 공유합니다. IAM Identity Center 설정 및 사용자 생성에 대한 자세한 내용은 섹션을 참조하세요자습서: 기본 Transfer Family 웹 앱 설정.
1단계: Transfer Family 웹 앱 생성
Transfer Family 웹 앱을 생성하려면
-
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/transfer/
AWS Transfer Family 콘솔을 엽니다. -
왼쪽 탐색 창에서 웹 앱을 선택합니다.
-
웹 앱 생성을 선택합니다.
인증 액세스의 경우 서비스는 사전 조건으로 설정한 AWS IAM Identity Center 인스턴스를 자동으로 찾습니다.
-
권한 유형 창에서 새 서비스 역할 생성 및 사용을 선택합니다. 서비스가 자격 증명 보유자 역할을 생성합니다. 자격 증명 보유자 역할에는 인증된 사용자의 자격 증명이 세션에 포함됩니다.
-
웹 앱 단위 창에서 기본값인 1을 수락하거나 필요한 경우 더 높은 값으로 조정합니다.
-
웹 앱을 구성하는 데 도움이 되는 태그를 추가합니다. 자습서의 경우 키의 이름과 값에 대한 자습서 웹 앱을 입력합니다.
작은 정보
웹 앱 이름을 생성한 후 웹 앱 목록 페이지에서 직접 편집할 수 있습니다.
-
다음을 선택하여 웹 앱 설계 페이지를 엽니다. 이 화면에서 다음 정보를 제공합니다.
선택적으로 웹 앱의 제목을 제공할 수 있습니다. 로고 및 파비콘에 대한 이미지 파일을 업로드할 수도 있습니다.
-
페이지 제목에서 사용자가 웹 앱에 연결할 때 표시되는 브라우저 탭의 제목을 사용자 지정합니다. 페이지 제목에 아무 것도 입력하지 않으면 기본적으로 웹 앱 전송으로 설정됩니다.
-
로고의 경우 이미지 파일을 업로드합니다. 로고 이미지의 최대 파일 크기는 50KB입니다.
-
파비콘의 경우 이미지 파일을 업로드합니다. 파비콘의 최대 파일 크기는 20KB입니다.
-
-
다음을 선택한 다음 웹 앱 생성을 선택합니다.
2단계: S3 액세스를 위한 IAM 역할 구성
두 개의 IAM 역할을 생성해야 합니다. 하나는 첫 번째 버킷에 대한 다운로드 전용 액세스 권한이 있고 다른 하나는 두 번째 버킷에 대한 업로드 전용 액세스 권한이 있습니다.
두 역할에 대한 신뢰 정책
두 IAM 역할에 대해 다음 신뢰 정책을 사용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessGrantsTrustPolicy", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext" ] } ] }
버킷 다운로드를 위한 IAM 정책
다운로드 버킷에 대한 읽기 전용 액세스를 위해 다음 정책을 사용하여 IAM 역할을 생성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }
중요
amzn-s3-demo-bucket1을 다운로드 버킷의 실제 이름으로 바꿉니다.
업로드 버킷에 대한 IAM 정책
업로드 버킷에 대한 쓰기 액세스를 위해 다음 정책을 사용하여 다른 IAM 역할을 생성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelWritePermissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }
중요
amzn-s3-demo-bucket2를 업로드 버킷의 실제 이름으로 바꿉니다.
3단계: S3 Access Grants 설정
-
에서 S3 콘솔을 엽니다https://console.aws.amazon.com/s3/
. -
탐색 창에서 Access Grants를 선택합니다.
-
S3 Access Grants 인스턴스 생성을 클릭합니다.
-
IAM Identity Center 인스턴스 추가 옵션을 선택하고 ID 센터 인스턴스 ARN을 입력합니다.
-
다음을 클릭한 다음 취소를 클릭하여 추가 단계를 진행하지 않고 S3 Access Grants 인스턴스 생성을 완료합니다.
이 단계에서는 S3 Access Grants 인스턴스를 생성합니다. 이제 위치를 등록하고 액세스 권한을 생성합니다.
4단계: S3 버킷 위치 등록
두 S3 버킷을 S3 Access Grants의 위치로 등록합니다.
-
S3 Access Grants 콘솔에서 위치로 이동하여 위치 등록을 클릭합니다.
-
위치 범위에서 다운로드할 특정 S3 버킷(amzn-s3-demo-bucket1)을 선택합니다.
-
IAM 역할을 선택하라는 메시지가 표시되면 이전에 생성한 IAM 역할 다운로드를 선택합니다.
-
등록 프로세스를 완료합니다.
-
이 프로세스를 반복하여 업로드 버킷(amzn-s3-demo-bucket2)을 등록하고 메시지가 표시되면 업로드 IAM 역할을 선택합니다.
5단계: 액세스 권한 부여 생성
등록된 각 위치에 대해 하나씩 두 개의 권한 부여를 생성합니다.
-
S3 Access Grants 콘솔에서 권한 부여로 이동하여 권한 부여 생성을 클릭합니다.
-
위치에서 위치 찾아보기를 클릭하고 다운로드 버킷 위치(amzn-s3-demo-bucket1)를 선택합니다.
-
하위 접두사(선택 사항)에서
*
를 입력하여 전체 버킷에 대한 액세스를 허용하거나와 같은 경로를 지정folder1/folder2/*
하여 특정 접두사에 대한 액세스를 제한합니다.를 사용하면 권한 부여 범위가 로
*
설정s3://bucket-name/*
되므로 전체 버킷에 액세스할 수 있습니다. 특정 접두사에 대한 액세스만 허용하려면 권한 부여 범위를 로folder1/folder2/*
설정하는와 같은 경로를 입력합니다s3://bucket-name/folder1/folder2/*
. -
권한 및 액세스에서 다운로드 버킷에 대한 읽기를 선택합니다.
-
피부여자 유형에서 IAM Identity Center의 디렉터리 자격 증명을 선택합니다.
-
IAM 보안 주체 유형에서 사용자를 선택하고 IAM Identity Center 사용자의 사용자 ID를 입력합니다.
-
권한 부여 생성 프로세스를 완료합니다.
-
이 프로세스를 반복하여 업로드 버킷(amzn-s3-demo-bucket2)에 대한 권한 부여를 생성하되 권한에 대해 읽기-쓰기를 선택합니다.
6단계: S3 버킷에 대한 CORS 정책 구성
WebApp을 통한 액세스를 허용하도록 두 S3 버킷에 대한 CORS 정책을 구성합니다. AWS Transfer Family
-
S3 콘솔을 열고 다운로드 버킷(amzn-s3-demo-bucket1)으로 이동합니다.
-
권한 탭을 선택합니다.
-
CORS(Cross-Origin Resource Sharing) 섹션으로 스크롤하여 편집을 클릭합니다.
-
다음 CORS 구성을 추가하여
WebAppEndpoint
를 실제 WebApp 엔드포인트 URL로 바꿉니다.AWS Transfer Family 콘솔의 WebApps. https://webapp-***************.transfer-webapp.us-west-2.on.aws 비슷하게 보일 것입니다.
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedOrigins": [ "https://
WebAppEndpoint
" ], "ExposeHeaders": [ "last-modified", "content-length", "etag", "x-amz-version-id", "content-type", "x-amz-request-id", "x-amz-id-2", "date", "x-amz-cf-id", "x-amz-storage-class", "access-control-expose-headers" ], "MaxAgeSeconds": 3000 } ] -
변경 사항 저장을 클릭합니다.
-
업로드 버킷(amzn-s3-demo-bucket2)에 대해 프로세스를 반복합니다.
7단계: 구성 테스트
-
AWS Transfer Family 웹 앱 URL을 엽니다. AWS Transfer Family 콘솔의 액세스 엔드포인트 필드의 WebApps에서이 URL을 찾을 수 있습니다.
-
액세스 권한 부여로 구성한 IAM Identity Center 사용자 자격 증명을 사용하여 로그인합니다.
-
로그인한 후에는 홈 페이지에 두 S3 위치가 모두 표시됩니다.
-
다운로드 버킷(amzn-s3-demo-bucket1)으로 이동하여 파일을 다운로드할 수 있지만 업로드할 수 없는지 확인합니다.
-
업로드 버킷(amzn-s3-demo-bucket2)으로 이동하여 파일을 업로드할 수 있는지 확인합니다.
결론
단일 사용자에 대한 선택적 S3 버킷 액세스로 AWS Transfer Family WebApp을 성공적으로 구성했습니다. 이 설정을 통해 사용자는 IAM 역할 및 S3 Access Grants를 통해 보안을 유지하면서 한 버킷에서 다운로드하여 다른 버킷으로 업로드할 수 있습니다.
이 접근 방식은 각 사용자에 대해 S3 Access Grants에 추가 권한을 생성하여 여러 사용자에게 확장할 수 있으므로 버킷 액세스 권한을 세밀하게 제어할 수 있습니다. 기본 웹 앱 설정에 대한 자세한 내용은 섹션을 참조하세요자습서: 기본 Transfer Family 웹 앱 설정.