기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon S3 버킷
주제
Amazon S3 버킷 탑재
Research and Engineering Studio(RES)는 Linux Virtual Desktop Infrastructure(VDI) 인스턴스에 Amazon S3 버킷을 탑재할 수 있도록 지원합니다. RES 관리자는 S3 버킷을 RES에 온보딩하고, 프로젝트에 연결하고, 구성을 편집하고, 환경 관리의 S3 버킷 탭에서 버킷을 제거할 수 있습니다.
S3 버킷 대시보드는 사용 가능한 온보딩된 S3 버킷 목록을 제공합니다. S3 버킷 대시보드에서 다음을 수행할 수 있습니다.
-
버킷 추가를 사용하여 S3 버킷을 RES에 온보딩합니다.
-
S3 버킷을 선택하고 작업 메뉴를 사용하여 다음을 수행합니다.
-
버킷 편집
-
버킷 제거
-
-
검색 필드를 사용하여 버킷 이름으로 검색하고 온보딩된 S3 버킷을 찾습니다.
Amazon S3 버킷 추가
RES 환경에 S3 버킷을 추가하려면:
-
Add bucket(버킷 추가)을 선택합니다.
-
버킷 이름, ARN, 탑재 지점과 같은 버킷 세부 정보를 입력합니다.
중요
-
제공된 버킷 ARN, 탑재 지점 및 모드는 생성 후 변경할 수 없습니다.
-
버킷 ARN에는 온보딩된 S3 버킷을 해당 접두사로 격리하는 접두사가 포함될 수 있습니다.
-
-
버킷을 온보딩할 모드를 선택합니다.
중요
-
특정 모드를 사용한 데이터 격리와 관련된 자세한 내용은 섹션을 참조데이터 격리하세요.
-
-
고급 옵션에서 IAM 역할 ARN을 제공하여 교차 계정 액세스를 위해 버킷을 탑재할 수 있습니다. 의 단계에 따라 교차 계정 액세스에 필요한 IAM 역할을 교차 계정 버킷 액세스 생성합니다.
-
(선택 사항) 나중에 변경할 수 있는 프로젝트와 버킷을 연결합니다. 그러나 S3 버킷은 프로젝트의 기존 VDI 세션에 탑재할 수 없습니다. 프로젝트가 버킷과 연결된 후 시작된 세션만 버킷을 마운트합니다.
-
제출을 선택합니다.
Amazon S3 버킷 편집
-
S3 버킷 목록에서 S3 버킷을 선택합니다.
-
작업 메뉴에서 편집을 선택합니다.
-
업데이트를 입력합니다.
중요
-
프로젝트를 S3 버킷과 연결해도 버킷은 해당 프로젝트의 기존 가상 데스크톱 인프라(VDI) 인스턴스에 탑재되지 않습니다. 버킷은 버킷이 해당 프로젝트와 연결된 후에만 프로젝트에서 시작된 VDI 세션에 마운트됩니다.
-
S3 버킷에서 프로젝트를 연결 해제해도 S3 버킷의 데이터에는 영향을 미치지 않지만 데스크톱 사용자는 해당 데이터에 대한 액세스 권한을 잃게 됩니다.
-
-
버킷 설정 저장을 선택합니다.
Amazon S3 버킷 제거
-
S3 버킷 목록에서 S3 버킷을 선택합니다.
-
작업 메뉴에서 제거를 선택합니다.
중요
-
먼저 버킷에서 모든 프로젝트 연결을 제거해야 합니다.
-
제거 작업은 S3 버킷의 데이터에 영향을 주지 않습니다. S3 버킷과 RES의 연결만 제거합니다.
-
버킷을 제거하면 해당 세션의 자격 증명 만료(~1시간) 시 기존 VDI 세션이 해당 버킷의 콘텐츠에 액세스할 수 없게 됩니다.
-
데이터 격리
RES에 S3 버킷을 추가할 때 버킷 내의 데이터를 특정 프로젝트 및 사용자에게 격리할 수 있는 옵션이 있습니다. 버킷 추가 페이지에서 읽기 전용(R) 또는 읽기 및 쓰기(R/W) 모드를 선택할 수 있습니다.
읽기 전용
Read Only (R)
를 선택하면 버킷 ARN(Amazon 리소스 이름)의 접두사를 기반으로 데이터 격리가 적용됩니다. 예를 들어 관리자가 ARN을 사용하여 버킷을 RES에 추가arn:aws:s3:::
하고이 버킷을 프로젝트 A 및 프로젝트 B와 연결하는 경우 프로젝트 A 및 프로젝트 B 내에서 VDIs를 시작하는 사용자는 /example-data 경로 아래의 bucket-name
/example-data
/bucket-name
에 있는 데이터만 읽을 수 있습니다. 해당 경로 외부의 데이터에 액세스할 수 없습니다. 버킷 ARN에 접두사가 추가되지 않은 경우 버킷과 연결된 모든 프로젝트에서 전체 버킷을 사용할 수 있습니다.
읽기 및 쓰기
Read and Write (R/W)
를 선택하면 위에서 설명한 대로 버킷 ARN의 접두사를 기반으로 데이터 격리가 계속 적용됩니다. 이 모드에는 관리자가 S3 버킷에 변수 기반 접두사를 제공할 수 있는 추가 옵션이 있습니다. Read and Write (R/W)
를 선택하면 다음 옵션이 포함된 드롭다운 메뉴를 제공하는 사용자 지정 접두사 섹션을 사용할 수 있게 됩니다.
사용자 지정 접두사 없음
/%p
/%p/%u

- 사용자 지정 데이터 격리 없음
-
사용자 지정 접두사에
No custom prefix
를 선택하면 사용자 지정 데이터 격리 없이 버킷이 추가됩니다. 이렇게 하면 버킷과 연결된 모든 프로젝트가 읽기 및 쓰기 액세스 권한을 가질 수 있습니다. 예를 들어 관리자가No custom prefix
선택한가arn:aws:s3:::
있는 ARN을 사용하여 버킷을 RES에 추가하고이 버킷을 프로젝트 A 및 프로젝트 B와 연결하는 경우 프로젝트 A 및 프로젝트 B 내에서 VDIs를 시작하는 사용자는 버킷에 대한 무제한 읽기 및 쓰기 액세스 권한을 갖습니다.bucket-name
- 프로젝트별 수준의 데이터 격리
-
사용자 지정 접두사에
/%p
를 선택하면 버킷의 데이터가 연결된 각 특정 프로젝트로 격리됩니다.%p
변수는 프로젝트 코드를 나타냅니다. 예를 들어 관리자가가/%p
선택되고 마운트 지점이/bucket
arn:aws:s3:::
인 ARN을 사용하여 버킷을 RES에 추가하고이 버킷을 프로젝트 A 및 프로젝트 B와 연결하는 경우 프로젝트 A의 사용자 A는bucket-name
/bucket
에 파일을 쓸 수 있습니다. 프로젝트 A의 사용자 B는 사용자 A가/bucket
에 작성한 파일을 볼 수도 있습니다. 그러나 사용자 B가 프로젝트 B에서 VDI를 시작하고/bucket
을 보면 프로젝트별로 데이터가 격리되므로 사용자 A가 작성한 파일은 볼 수 없습니다. 사용자 A가 작성한 파일은 접두사 아래의 S3 버킷에서 찾을 수/ProjectA
있지만 사용자 B는 프로젝트 B의 VDIs를 사용할/ProjectB
때만에 액세스할 수 있습니다. - 프로젝트별, 사용자별 수준에서의 데이터 격리
-
사용자 지정 접두사에
/%p/%u
를 선택하면 버킷의 데이터가 해당 프로젝트와 연결된 각 특정 프로젝트 및 사용자로 격리됩니다.%p
변수는 프로젝트 코드를 나타내고는 사용자 이름을%u
나타냅니다. 예를 들어 관리자가가arn:aws:s3:::
bucket-name
/%p/%u
선택된 ARN과/bucket
의 탑재 지점을 사용하여 RES에 버킷을 추가합니다. 이 버킷은 프로젝트 A 및 프로젝트 B와 연결되어 있습니다. 프로젝트 A의 사용자 A는/bucket
에 파일을 쓸 수 있습니다.%p
격리만 있는 이전 시나리오와 달리이 경우 사용자 B는 프로젝트 A가/bucket
의 프로젝트 A에 작성한 파일을 볼 수 없습니다. 프로젝트와 사용자 모두가 데이터를 격리하기 때문입니다. 사용자 A가 작성한 파일은 접두사 아래의 S3 버킷에서 찾을 수/ProjectA/UserA
있지만 사용자 B는 프로젝트 A에서 VDIs 사용할/ProjectA/UserB
때만에 액세스할 수 있습니다.
교차 계정 버킷 액세스
RES는 버킷에 적절한 권한이 있는 경우 다른 AWS 계정에서 버킷을 탑재할 수 있습니다. 다음 시나리오에서 계정 A의 RES 환경은 계정 B에 S3 버킷을 탑재하려고 합니다.
1단계: RES가 배포된 계정에 IAM 역할을 생성합니다(이를 계정 A라고 함).
-
S3 버킷(계정 A)에 액세스해야 하는 RES 계정의 AWS Management Console에 로그인합니다.
-
IAM 콘솔을 엽니다.
-
IAM 대시보드로 이동합니다.
-
탐색 창에서 정책을 선택합니다.
-
-
정책 생성:
-
정책 생성을 선택합니다.
-
JSON 탭을 선택합니다.
-
다음 JSON 정책을 붙여 넣습니다(
<BUCKET-NAME>
을 계정 B에 있는 S3 버킷의 이름으로 바꿉니다). -
다음을 선택합니다.
-
-
정책을 검토하고 생성합니다.
-
정책의 이름을 입력합니다(예: "S3AccessPolicy").
-
정책의 목적을 설명하는 선택적 설명을 추가합니다.
-
정책을 검토하고 정책 생성을 선택합니다.
-
-
IAM 콘솔을 엽니다.
-
IAM 대시보드로 이동합니다.
-
탐색 창에서 [역할(Roles)]을 선택합니다.
-
-
역할 생성:
-
규칙 생성을 선택합니다.
-
신뢰할 수 있는 엔터티 유형으로 사용자 지정 신뢰 정책을 선택합니다.
-
다음 JSON 정책을 붙여 넣습니다(
<ACCOUNT_ID>
를 계정 A의 실제 계정 ID로,<ENVIRONMENT_NAME>
을 RES 배포의 환경 이름으로,<REGION>
을 RES가 배포된 AWS 리전으로 바꿉니다). -
"다음"을 선택합니다.
-
-
권한 정책 연결:
-
이전에 생성한 정책을 검색하고 선택합니다.
-
"다음"을 선택합니다.
-
-
역할에 태그 지정, 검토 및 생성:
-
역할 이름(예: "S3AccessRole")을 입력합니다.
-
3단계에서 태그 추가를 선택한 다음 다음 키와 값을 입력합니다.
-
키:
res:Resource
-
값:
s3-bucket-iam-role
-
-
역할을 검토하고 역할 생성을 선택합니다.
-
-
RES에서 IAM 역할 사용:
-
생성한 IAM 역할 ARN을 복사합니다.
-
RES 콘솔에 로그인합니다.
-
왼쪽 탐색 창에서 S3 버킷을 선택합니다.
-
버킷 추가를 선택하고 교차 계정 S3 버킷 ARN으로 양식을 작성합니다.
-
고급 설정 - 선택 사항 드롭다운을 선택합니다.
-
IAM 역할 ARN 필드에 역할 ARN을 입력합니다.
-
버킷 추가를 선택합니다.
-
2단계: 계정 B에서 버킷 정책 수정
-
계정 B의 AWS Management Console에 로그인합니다.
-
S3 콘솔을 엽니다.
-
S3 대시보드로 이동합니다.
-
액세스 권한을 부여할 버킷을 선택합니다.
-
-
버킷 정책을 편집합니다.
-
권한 탭을 선택하고 버킷 정책을 선택합니다.
-
다음 정책을 추가하여 계정 A의 IAM 역할에 버킷에 대한 액세스 권한을 부여합니다(
<AccountA_ID>
를 계정 A의 실제 계정 ID로 바꾸고<BUCKET-NAME>
을 S3 버킷 이름으로 바꿉니다). -
저장을 선택합니다.
-
프라이빗 VPC에서 데이터 유출 방지
사용자가 보안 S3 버킷의 데이터를 계정의 자체 S3 버킷으로 유출하지 못하도록 VPC 엔드포인트를 연결하여 프라이빗 VPC를 보호할 수 있습니다. 다음 단계에서는 계정 내의 S3 버킷과 교차 계정 버킷이 있는 추가 계정에 대한 액세스를 지원하는 S3 서비스에 대한 VPC 엔드포인트를 생성하는 방법을 보여줍니다.
-
Amazon VPC 콘솔을 엽니다.
-
AWS Management Console에 로그인합니다.
-
https://console.aws.amazon.com/vpc/
Amazon VPC 콘솔을 엽니다.
-
-
S3용 VPC 엔드포인트 생성:
-
왼쪽 탐색 창에서 엔드포인트를 선택합니다.
-
엔드포인트 생성을 선택합니다.
-
서비스 범주에서 AWS 서비스를 선택해야 합니다.
-
서비스 이름 필드에
com.amazonaws.
(<region>
.s3<region>
을 해당 AWS 리전으로 대체)를 입력하거나 "S3"를 검색합니다. -
목록에서 S3 서비스를 선택합니다.
-
-
엔드포인트 설정 구성:
-
VPC에서 엔드포인트를 생성할 VPC를 선택합니다.
-
서브넷에서 배포 중에 VDI 서브넷에 사용되는 프라이빗 서브넷을 모두 선택합니다.
-
DNS 이름 활성화에서 옵션이 선택되어 있는지 확인합니다. 이렇게 하면 프라이빗 DNS 호스트 이름을 엔드포인트 네트워크 인터페이스로 확인할 수 있습니다.
-
-
액세스를 제한하도록 정책을 구성합니다.
-
정책에서 사용자 지정을 선택합니다.
-
정책 편집기에서 계정 또는 특정 계정 내의 리소스에 대한 액세스를 제한하는 정책을 입력합니다. 다음은 예제 정책입니다(
mybucket
을 S3 버킷 이름으로 바꾸고111122223333
및444455556666
을 액세스하려는 적절한 AWS 계정 IDs로 바꿉니다).
-
-
엔드포인트 생성:
-
설정을 검토합니다.
-
엔드포인트 생성을 선택합니다.
-
-
엔드포인트를 확인합니다.
-
엔드포인트가 생성되면 VPC 콘솔의 엔드포인트 섹션으로 이동합니다.
-
새로 생성된 엔드포인트를 선택합니다.
-
상태가 사용 가능한지 확인합니다.
-
다음 단계에 따라 계정 또는 지정된 계정 ID 내의 리소스로 제한된 S3 액세스를 허용하는 VPC 엔드포인트를 생성합니다.
문제 해결
버킷이 VDI에 탑재되지 않는지 확인하는 방법
버킷이 VDI에 탑재되지 않는 경우 오류를 확인할 수 있는 몇 가지 위치가 있습니다. 아래 단계를 따릅니다.
-
VDI 로그를 확인합니다.
-
AWS Management Console에 로그인합니다.
-
EC2 콘솔을 열고 인스턴스로 이동합니다.
-
시작한 VDI 인스턴스를 선택합니다.
-
세션 관리자를 통해 VDI에 연결합니다.
-
다음 명령을 실행합니다.
sudo su cd ~/bootstrap/logs
여기에서 부트스트랩 로그를 확인할 수 있습니다. 실패에 대한 세부 정보는
configure.log.{time}
파일에 있습니다.또한
/etc/message
로그에서 자세한 내용을 확인하세요.
-
-
사용자 지정 자격 증명 브로커 Lambda CloudWatch Logs 확인:
-
AWS Management Console에 로그인합니다.
-
CloudWatch 콘솔을 열고 로그 그룹으로 이동합니다.
-
로그 그룹를 검색합니다
/aws/lambda/
.<stack-name>
-vdc-custom-credential-broker-lambda -
사용 가능한 첫 번째 로그 그룹을 검사하고 로그에서 오류를 찾습니다. 이러한 로그에는 S3 버킷을 탑재하기 위한 임시 사용자 지정 자격 증명을 제공하는 잠재적 문제에 대한 세부 정보가 포함됩니다.
-
-
사용자 지정 자격 증명 브로커 API Gateway CloudWatch Logs 확인:
-
AWS Management Console에 로그인합니다.
-
CloudWatch 콘솔을 열고 로그 그룹으로 이동합니다.
-
로그 그룹를 검색합니다
.<stack-name>
-vdc-custom-credential-broker-lambdavdccustomcredentialbrokerapigatewayaccesslogs<nonce> -
사용 가능한 첫 번째 로그 그룹을 검사하고 로그에서 오류를 찾습니다. 이러한 로그에는 S3 버킷을 탑재하는 데 필요한 사용자 지정 자격 증명에 대한 API Gateway에 대한 요청 및 응답과 관련된 세부 정보가 포함됩니다.
-
온보딩 후 버킷의 IAM 역할 구성을 편집하는 방법
-
AWS DynamoDB 콘솔
에 로그인합니다. -
테이블을 선택합니다.
-
왼쪽 탐색 창에서 테이블을 선택합니다.
-
를 찾아 선택합니다
.<stack-name>
.cluster-settings
-
-
테이블을 스캔합니다.
-
테이블 항목 탐색을 선택합니다.
-
스캔이 선택되어 있는지 확인합니다.
-
-
필터 추가:
-
필터를 선택하여 필터 항목 섹션을 엽니다.
-
필터를 키와 일치하도록 설정합니다.
-
속성: 키를 입력합니다.
-
조건: 시작을 선택합니다.
-
값:
<filesystem_id>
를 수정해야 하는 파일 시스템의 값으로shared-storage.
바꿉니다.<filesystem_id>
.s3_bucket.iam_role_arn
-
-
-
스캔을 실행합니다.
실행을 선택하여 필터로 스캔을 실행합니다.
-
값을 확인합니다.
항목이 있는 경우 값이 올바른 IAM 역할 ARN으로 올바르게 설정되었는지 확인합니다.
항목이 없는 경우:
-
항목 생성을 선택합니다.
-
항목 세부 정보를 입력합니다.
-
키 속성에를 입력합니다
shared-storage.
.<filesystem_id>
.s3_bucket.iam_role_arn -
올바른 IAM 역할 ARN을 추가합니다.
-
-
저장을 선택하여 항목을 추가합니다.
-
-
VDI 인스턴스를 다시 시작합니다.
인스턴스를 재부팅하여 잘못된 IAM 역할 ARN의 영향을 받는 VDIs가 다시 마운트되도록 합니다.
CloudTrail 사용 설정
CloudTrail 콘솔을 사용하여 계정에서 CloudTrail을 활성화하려면 CloudTrail 사용 설명서의 CloudTrail 콘솔을 사용하여 추적 생성에 제공된 지침을 따르세요. AWS CloudTrail CloudTrail은 액세스한 IAM 역할을 기록하여 S3 버킷에 대한 액세스를 기록합니다. 이는 프로젝트 또는 사용자에 연결된 인스턴스 ID에 다시 연결할 수 있습니다.