Snow 패밀리 콘솔 및 작업 생성에 대한 액세스 제어
모든 AWS 서비스와 마찬가지로 AWS Snowball에 액세스하려면 AWS에서 요청을 인증하는 데 사용할 수 있는 보안 인증 정보가 필요합니다. 이러한 보안 인증 정보에는 AWS 리소스(예시: Amazon S3 버킷 또는 AWS Lambda 함수)에 액세스할 수 있는 권한이 있어야 합니다. AWS Snowball은 다음과 같은 두 가지 면에서 차이가 있습니다.
-
AWS Snowball의 작업에는 ARN(Amazon 리소스 이름)이 없습니다.
-
온프레미스에서 디바이스에 대한 물리 및 네트워크 액세스 제어는 사용자의 책임입니다.
AWS Identity and Access Management(IAM) 및 AWS Snowball을 사용하여 AWS 클라우드에서 리소스에 액세스할 수 있는 사용자를 제어함으로써 리소스를 보호하는 방법 및 로컬 액세스 제어 권장 사항에 대한 자세한 내용은 AWS Snow Family의 ID 및 액세스 관리 섹션을 참조하세요.
AWS 클라우드의 리소스에 대한 액세스 권한 관리 개요
모든 AWS 리소스는 AWS 계정의 소유이며, 리소스를 생성하거나 리소스에 액세스할 수 있는 권한은 권한 정책에 따라 결정됩니다. 계정 관리자는 IAM ID(즉, 사용자, 그룹, 역할)에 권한 정책을 연결할 수 있고, 일부 서비스(예: AWS Lambda)에서는 리소스에 대한 권한 정책 연결도 지원합니다.
참고
계정 관리자 또는 관리자 사용자는 관리자 권한이 있는 사용자입니다. 자세한 설명은 IAM 사용자 가이드의 IAM 모범 사례 섹션을 참조하십시오.
리소스 및 작업
AWS Snowball에서 기본 리소스는 작업입니다. 또한 AWS Snowball에는 Snowball 및 AWS Snowball Edge 디바이스와 같은 디바이스가 있지만 기존 작업의 맥락에서만 이러한 디바이스를 사용할 수 있습니다. Amazon S3 버킷과 Lambda 함수는 각각 Amazon S3와 Lambda의 리소스입니다.
앞에서 언급했듯이 작업에는 연결된 Amazon 리소스 이름(ARN)이 없습니다. 그러나 Amazon S3 버킷과 같은 다른 서비스 리소스에는 다음 테이블에 나와 있는 것처럼 고유한 이름(ARN)이 연결되어 있습니다.
리소스 유형 | ARN 형식 |
---|---|
S3 버킷 | arn:aws:s3: |
AWS Snowball에서는 작업을 생성 및 관리하기 위한 일련의 작업을 제공합니다. 사용 가능한 작업 목록은 AWS Snowball API Reference 섹션을 참조하세요.
리소스 소유권 이해
AWS 계정은 리소스를 누가 생성했는지와 상관없이 계정에서 생성된 리소스를 소유합니다. 특히, 리소스 소유자는 리소스 생성 요청을 인증하는 보안 주체 엔터티(즉, 루트 계정, IAM 사용자 또는 IAM 역할)의 AWS 계정입니다. 다음 예에서는 이러한 작동 방식을 설명합니다.
-
AWS 계정의 루트 계정 보안 인증 정보를 사용하여 S3 버킷을 생성하는 경우에는 AWS 계정이 리소스 소유자입니다(AWS Snowball에서 리소스는 작업임).
-
AWS 계정에서 IAM 사용자를 생성하고 해당 사용자에게 Snow Family 디바이스 주문 작업을 생성할 수 있는 권한을 부여하면, 이 사용자가 Snow Family 디바이스 주문 작업을 생성할 수 있습니다. 하지만 해당 사용자가 속한 AWS 계정이 작업 리소스를 소유합니다.
-
AWS 계정에서 작업을 생성할 권한이 있는 IAM 역할을 생성하는 경우 해당 역할을 담당할 수 있는 사람은 누구나 Snow Family 디바이스 주문 작업을 생성할 수 있습니다. 이 경우 역할이 속한 AWS 계정이 작업 리소스를 소유합니다.
AWS 클라우드 내 리소스에 대한 액세스 관리
권한 정책은 누가 무엇에 액세스할 수 있는지를 나타냅니다. 다음 섹션에서는 권한 정책을 만드는 데 사용 가능한 옵션에 대해 설명합니다.
참고
이 섹션에서는 AWS Snowball의 맥락에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 정보는 다루지 않습니다. IAM 설명서 전체 내용은 IAM 사용 설명서의 IAM이란 무엇입니까? 섹션을 참조하세요. IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서의 AWS IAM 정책 참조 섹션을 참조하세요.
IAM 자격 증명에 연결된 정책을 자격 증명 기반 정책(IAM 정책)이라고 하고, 리소스에 연결된 정책을 리소스 기반 정책이라고 합니다. AWS Snowball는 자격 증명 기반 정책(IAM 정책)만 지원합니다.
리소스 기반 정책
Amazon S3과 같은 다른 서비스도 리소스 기반 권한 정책을 지원합니다. 예를 들어, 정책을 S3 버킷에 연결하여 해당 버킷에 대한 액세스 권한을 관리할 수 있습니다. AWS Snowball는 리소스 기반 정책을 지원하지 않습니다.
정책 요소 지정: 작업, 효과, 보안 주체
각 작업(리소스 및 작업 섹션 참조)에 대해 서비스는 해당 작업을 생성 및 관리하기 위한 일련의 API 작업(AWS Snowball API Reference 섹션 참조)을 정의합니다. 이러한 API 작업에 대한 권한을 부여하기 위해 AWS Snowball에서는 정책에서 지정할 수 있는 작업을 정의합니다. 예를 들어, 작업에 대해 CreateJob
, CancelJob
및 DescribeJob
작업을 정의합니다. API 작업을 수행하려면 둘 이상의 작업에 대한 권한이 필요할 수 있습니다.
다음은 가장 기본적인 정책 요소입니다.
-
리소스 – 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 식별합니다. 자세한 내용은 리소스 및 작업 단원을 참조하십시오.
참고
이는 Amazon S3, Amazon EC2, AWS Lambda, AWS KMS 및 기타 여러 서비스에서 지원됩니다.
Snowball은 IAM 정책 설명의
Resource
요소에 리소스 ARN을 지정하는 기능을 지원하지 않습니다. Snowball에 대한 액세스를 허용하려면 정책에서“Resource”: “*”
를 지정합니다. -
조치 – 조치 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들어 지정한
Effect
에 따라snowball:*
는 모든 작업을 수행할 수 있는 사용자 권한을 허용하거나 거부합니다.참고
이는 Amazon EC2, Amazon S3, IAM에서 지원됩니다.
-
결과 – 사용자가 특정 작업을 요청하는 경우의 결과를 지정합니다. 이는 허용 또는 거부 중에 하나가 될 수 있습니다. 명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 다른 정책에서 액세스 권한을 부여하는 경우라도 사용자가 해당 리소스에 액세스할 수 없도록 하기 위해 리소스에 대한 권한을 명시적으로 거부할 수도 있습니다.
참고
이는 Amazon EC2, Amazon S3, IAM에서 지원됩니다.
-
보안 주체 – 정체 기반 정책(IAM 정책)에서 정책이 연계된 사용자는 암묵적인 보안 주체입니다. 리소스 기반 정책의 경우 사용자, 계정, 서비스 또는 권한의 수신자인 기타 개체를 지정합니다(리소스 기반 정책에만 해당). AWS Snowball의 경우 리소스 기반 정책을 지원하지 않습니다.
IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서의 AWS IAM 정책 참조를 참조하십시오.
모든 AWS Snowball API 작업을 보여주는 테이블은 AWS Snowball API 권한: 작업, 리소스 및 조건 참조 섹션을 참조하세요.
정책에서 조건 지정
권한을 부여할 때 IAM 정책 언어를 사용하여 정책이 적용되는 조건을 지정할 수 있습니다. 예를 들어, 특정 날짜 이후에만 정책을 적용할 수 있습니다. 정책 언어에서의 조건 지정에 관한 자세한 내용은 IAM 사용 설명서의 조건을 참조하십시오.
조건을 표시하려면 미리 정의된 조건 키를 사용합니다. AWS Snowball에만 해당되는 특정한 조건 키는 없습니다. 하지만 필요에 따라 사용할 수 있는 AWS 차원의 조건 키는 있습니다. AWS 전체 키의 전체 목록은 IAM 사용자 가이드의 사용 가능한 조건 키를 참조하십시오.
AWS Snowball Edge용 AWS-관리형(미리 정의됨) 정책
AWS는 AWS에서 생성하고 관리하는 독립형 IAM 정책을 제공하여 많은 일반 사용 사례를 처리합니다. 관리형 정책은 사용자가 필요한 권한을 조사할 필요가 없도록 일반 사용 사례에 필요한 권한을 부여합니다. 자세한 내용은 IAM 사용 설명서의 AWS 관리형 정책을 참조하세요.
AWS Snowball에서 다음과 같은 AWS 관리형 정책을 사용할 수 있습니다.
Snowball Edge용 IAM 역할 정책 생성
IAM 역할 정책은 Amazon S3 버킷에 대한 읽기 및 쓰기 권한을 사용하여 생성해야 합니다. IAM 역할은 Snowball과 신뢰 관계도 맺고 있어야 합니다. 신뢰 관계를 맺고 있다는 것은 데이터를 가져올 것인지 아니면 내보낼 것인지에 따라 AWS에서 Snowball 및 Amazon S3 버킷에 데이터를 쓸 수 있음을 의미합니다.
AWS Snow 패밀리 관리 콘솔에서 Snow Family 디바이스 주문 작업을 생성할 때 필요한 IAM 역할 생성은 권한 섹션의 4단계에서 수행됩니다. 이 프로세스는 자동으로 수행됩니다. Snowball에서 수임하도록 사용자가 허용하는 IAM 역할은 전송된 데이터가 있는 AWS에 도착하면 버킷에 데이터를 쓰는 데에만 사용됩니다. 다음 절차에서는 이 프로세스를 간략하게 설명합니다.
가져오기 작업을 위한 IAM 역할을 생성하려면
-
AWS Management Console에 로그인하여 https://console.aws.amazon.com/importexport/
에서 AWS Snowball 콘솔을 엽니다. -
작업 생성을 선택합니다.
-
1단계에서 가져오기 작업의 세부 정보를 Amazon S3에 작성한 다음 다음을 선택합니다.
-
2단계에서 [Permission]에서 [Create/Select IAM Role]을 선택합니다.
IAM Management Console이 열리며, AWS가 지정된 Amazon S3 버킷에 객체를 복사하는 데 사용하는 IAM 역할을 보여줍니다.
-
이 페이지에서 세부 정보를 검토한 후 허용을 선택합니다.
AWS Snow 패밀리 관리 콘솔로 돌아갑니다. 선택한 IAM 역할 ARN에 방금 생성한 IAM 역할에 대한 ARN(Amazon 리소스 이름)이 포함됩니다.
-
다음을 선택하여 IAM 역할 생성을 완료합니다.
이전 절차에서는 사용자가 데이터를 가져오려고 하는 Amazon S3 버킷에 대한 쓰기 권한이 있는 IAM 역할을 생성합니다. 생성되는 IAM 역할은 가져오기 작업을 위한 것인지 내보내기 작업을 위한 것인지 여부에 따라 다음 중 한 가지 구조를 가집니다.
가져오기 작업을 위한 IAM 역할
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectAcl", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" } ] }
AWS KMS 관리형 키를 통한 서버 측 암호화(SSE-KMS)를 사용하여 가져오기 작업과 관련된 Amazon S3 버킷을 암호화하는 경우에는 IAM 역할에 다음 문도 추가해야 합니다.
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:
123456789012:key/abc123a1-abcd-1234-efgh-111111111111
" }
객체 크기가 클 경우 가져오기 프로세스에 사용되는 Amazon S3 클라이언트는 멀티파트 업로드를 사용합니다. SSE-KMS를 사용하여 멀티파트 업로드를 시작하는 경우 업로드된 모든 파트가 지정된 AWS KMS 키를 사용하여 암호화됩니다. 파트는 암호화되므로 멀티파트 업로드를 완료하기 위해 어셈블하려면 먼저 해독해야 합니다. 따라서 SSE-KMS를 사용하여 Amazon S3에 멀티파트 업로드를 실행할 때 AWS KMS 키(kms:Decrypt
)를 해독할 권한이 있어야 합니다.
다음은 kms:Decrypt
권한이 필요한 가져오기 작업에 필요한 IAM 역할의 예입니다.
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey","kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111" }
다음은 내보내기 작업에 필요한 IAM 역할의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" } ] }
AWS KMS 관리형 키를 통한 서버 측 암호화를 사용하여 가져오기 작업과 관련된 Amazon S3 버킷을 암호화하는 경우에는 IAM 역할에 다음 문도 추가해야 합니다.
{ "Effect": "Allow", "Action": [ “kms:Decrypt” ], "Resource": "arn:aws:kms:us-west-2:
123456789012:key/abc123a1-abcd-1234-efgh-111111111111
" }
AWS Snowball 작업 관리용 API 작업에 대한 권한을 허용하는 고유의 사용자 지정 IAM 정책을 생성할 수 있습니다. 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다.