자습서: 선택적 다중 버킷 액세스로 AWS Transfer Family 웹 앱 설정 - AWS Transfer Family

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: 선택적 다중 버킷 액세스로 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 웹 앱을 생성하려면
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/transfer/ AWS Transfer Family 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 웹 앱을 선택합니다.

  3. 웹 앱 생성을 선택합니다.

    인증 액세스의 경우 서비스는 사전 조건으로 설정한 AWS IAM Identity Center 인스턴스를 자동으로 찾습니다.

  4. 권한 유형 창에서 새 서비스 역할 생성 및 사용을 선택합니다. 서비스가 자격 증명 보유자 역할을 생성합니다. 자격 증명 보유자 역할에는 인증된 사용자의 자격 증명이 세션에 포함됩니다.

  5. 웹 앱 단위 창에서 기본값인 1을 수락하거나 필요한 경우 더 높은 값으로 조정합니다.

  6. 웹 앱을 구성하는 데 도움이 되는 태그를 추가합니다. 자습서의 경우 키의 이름과 값에 대한 자습서 웹 앱을 입력합니다.

    작은 정보

    웹 앱 이름을 생성한 후 웹 앱 목록 페이지에서 직접 편집할 수 있습니다.

  7. 다음을 선택하여 웹 앱 설계 페이지를 엽니다. 이 화면에서 다음 정보를 제공합니다.

    선택적으로 웹 앱의 제목을 제공할 수 있습니다. 로고 및 파비콘에 대한 이미지 파일을 업로드할 수도 있습니다.

    • 페이지 제목에서 사용자가 웹 앱에 연결할 때 표시되는 브라우저 탭의 제목을 사용자 지정합니다. 페이지 제목에 아무 것도 입력하지 않으면 기본적으로 웹 앱 전송으로 설정됩니다.

    • 로고의 경우 이미지 파일을 업로드합니다. 로고 이미지의 최대 파일 크기는 50KB입니다.

    • 파비콘의 경우 이미지 파일을 업로드합니다. 파비콘의 최대 파일 크기는 20KB입니다.

  8. 다음을 선택한 다음 웹 앱 생성을 선택합니다.

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 설정

  1. 에서 S3 콘솔을 엽니다https://console.aws.amazon.com/s3/.

  2. 탐색 창에서 Access Grants를 선택합니다.

  3. S3 Access Grants 인스턴스 생성을 클릭합니다.

  4. IAM Identity Center 인스턴스 추가 옵션을 선택하고 ID 센터 인스턴스 ARN을 입력합니다.

  5. 다음을 클릭한 다음 취소를 클릭하여 추가 단계를 진행하지 않고 S3 Access Grants 인스턴스 생성을 완료합니다.

이 단계에서는 S3 Access Grants 인스턴스를 생성합니다. 이제 위치를 등록하고 액세스 권한을 생성합니다.

4단계: S3 버킷 위치 등록

두 S3 버킷을 S3 Access Grants의 위치로 등록합니다.

  1. S3 Access Grants 콘솔에서 위치로 이동하여 위치 등록을 클릭합니다.

  2. 위치 범위에서 다운로드할 특정 S3 버킷(amzn-s3-demo-bucket1)을 선택합니다.

  3. IAM 역할을 선택하라는 메시지가 표시되면 이전에 생성한 IAM 역할 다운로드를 선택합니다.

  4. 등록 프로세스를 완료합니다.

  5. 이 프로세스를 반복하여 업로드 버킷(amzn-s3-demo-bucket2)을 등록하고 메시지가 표시되면 업로드 IAM 역할을 선택합니다.

5단계: 액세스 권한 부여 생성

등록된 각 위치에 대해 하나씩 두 개의 권한 부여를 생성합니다.

  1. S3 Access Grants 콘솔에서 권한 부여로 이동하여 권한 부여 생성을 클릭합니다.

  2. 위치에서 위치 찾아보기를 클릭하고 다운로드 버킷 위치(amzn-s3-demo-bucket1)를 선택합니다.

  3. 하위 접두사(선택 사항)에서 *를 입력하여 전체 버킷에 대한 액세스를 허용하거나와 같은 경로를 지정folder1/folder2/*하여 특정 접두사에 대한 액세스를 제한합니다.

    를 사용하면 권한 부여 범위가 로 * 설정s3://bucket-name/*되므로 전체 버킷에 액세스할 수 있습니다. 특정 접두사에 대한 액세스만 허용하려면 권한 부여 범위를 로 folder1/folder2/*설정하는와 같은 경로를 입력합니다s3://bucket-name/folder1/folder2/*.

  4. 권한 및 액세스에서 다운로드 버킷에 대한 읽기를 선택합니다.

  5. 피부여자 유형에서 IAM Identity Center의 디렉터리 자격 증명을 선택합니다.

  6. IAM 보안 주체 유형에서 사용자를 선택하고 IAM Identity Center 사용자의 사용자 ID를 입력합니다.

  7. 권한 부여 생성 프로세스를 완료합니다.

  8. 이 프로세스를 반복하여 업로드 버킷(amzn-s3-demo-bucket2)에 대한 권한 부여를 생성하되 권한에 대해 읽기-쓰기를 선택합니다.

6단계: S3 버킷에 대한 CORS 정책 구성

WebApp을 통한 액세스를 허용하도록 두 S3 버킷에 대한 CORS 정책을 구성합니다. AWS Transfer Family

  1. S3 콘솔을 열고 다운로드 버킷(amzn-s3-demo-bucket1)으로 이동합니다.

  2. 권한 탭을 선택합니다.

  3. CORS(Cross-Origin Resource Sharing) 섹션으로 스크롤하여 편집을 클릭합니다.

  4. 다음 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 } ]
  5. 변경 사항 저장을 클릭합니다.

  6. 업로드 버킷(amzn-s3-demo-bucket2)에 대해 프로세스를 반복합니다.

7단계: 구성 테스트

  1. AWS Transfer Family 웹 앱 URL을 엽니다. AWS Transfer Family 콘솔의 액세스 엔드포인트 필드의 WebApps에서이 URL을 찾을 수 있습니다.

  2. 액세스 권한 부여로 구성한 IAM Identity Center 사용자 자격 증명을 사용하여 로그인합니다.

  3. 로그인한 후에는 홈 페이지에 두 S3 위치가 모두 표시됩니다.

  4. 다운로드 버킷(amzn-s3-demo-bucket1)으로 이동하여 파일을 다운로드할 수 있지만 업로드할 수 없는지 확인합니다.

  5. 업로드 버킷(amzn-s3-demo-bucket2)으로 이동하여 파일을 업로드할 수 있는지 확인합니다.

결론

단일 사용자에 대한 선택적 S3 버킷 액세스로 AWS Transfer Family WebApp을 성공적으로 구성했습니다. 이 설정을 통해 사용자는 IAM 역할 및 S3 Access Grants를 통해 보안을 유지하면서 한 버킷에서 다운로드하여 다른 버킷으로 업로드할 수 있습니다.

이 접근 방식은 각 사용자에 대해 S3 Access Grants에 추가 권한을 생성하여 여러 사용자에게 확장할 수 있으므로 버킷 액세스 권한을 세밀하게 제어할 수 있습니다. 기본 웹 앱 설정에 대한 자세한 내용은 섹션을 참조하세요자습서: 기본 Transfer Family 웹 앱 설정.