View a markdown version of this page

작업 관리 API 사용 - AWS Snowball Edge개발자 안내서

AWS Snowball Edge는 더 이상 신규 고객이 사용할 수 없습니다. 신규 고객은 온라인 전송, 안전한 물리적 전송AWS DataSync을 위한 AWS데이터 전송 터미널 또는AWS파트너 솔루션을 탐색해야 합니다. 엣지 컴퓨팅의 경우 AWS Outposts를 살펴보세요.

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

작업 관리 API 사용

용 작업 관리 API AWS Snowball Edge는 HTTP(RFC 2616)를 기반으로 하는 네트워크 프로토콜입니다. 이 RFC에 대한 자세한 내용은 IETF 웹 사이트의 HTTP(RFC 2616)를 참조하십시오. 작업 관리 API를 호출할 때마다 작업을 관리할AWS 리전의 리전별 작업 관리 API 엔드포인트에 대한 HTTP 요청을 만듭니다. API에서는 HTTP 요청/응답 본문에 대해 JSON(RFC 4627) 문서를 사용합니다.

참고

작업을 나열하거나 주소를 설명하기 위해 미국 리전 내에서 생성되는 API 호출은 해당 계정에 대한 미국 내의 모든 작업 또는 주소를 반환합니다.

Snowball Edge용 작업 관리 API는 RPC 모델입니다. 이 모델은 고정된 작업 세트가 있고, 이전 상호 작용이 없어도 클라이언트가 각 작업의 구문을 알고 있습니다. 아래에서 작업 이름이 사용자 코드에 표시되지 않는 추상 RPC 표기법을 사용하여 각 API 작업에 대한 설명을 찾을 수 있습니다. 각 작업에 대해 주제는 HTTP 요청 요소에 대한 매핑을 지정합니다.

지정된 요청이 매핑되는 특정 작업 관리 작업은 요청 메서드(GET, PUT, POST 또는 DELETE)와 요청-URI가 일치되는 다양한 패턴의 조합에 따라 결정됩니다. 작업이 PUT 또는 POST인 경우 Snowball Edge는 요청-URI 경로 세그먼트, 쿼리 파라미터 및 요청 본문의 JSON 객체에서 호출 인수를 추출합니다.

와 같은 작업 이름은 유선에 CreateJob표시되지 않지만 이러한 작업 이름은AWS Identity and Access Management(IAM) 정책에서 의미가 있습니다. 작업 이름은 명령줄 도구 및AWS SDK APIs의 요소에서 명령의 이름을 지정하는 데에도 사용됩니다. 예를 들어,AWS Command Line Interface(AWS CLI) 명령은 CreateJob 작업에 create-job 매핑됩니다. 작업 이름은 Snowball Edge API 호출에 대한 CloudTrail 로그에도 표시됩니다.

AWS CLI호출할 리전 지정AWS CLI을 포함하여 설치 및 설정에 대한 자세한 내용은 AWS Command Line Interface사용 설명서를 참조하세요.

참고

작업 관리 API는 AWS Snowball Management Console에서 사용할 수 있는 것과 동일한 기능, 즉 Snowball Edge에 대한 작업을 생성하고 관리하기 위한 프로그래밍 인터페이스를 제공합니다. Snowball 어플라이언스를 사용하여 로컬로 데이터를 전송하려면 Snowball Edge 클라이언트 또는 S3 SDK Adapter for Snowball Edge를 사용합니다. 자세한 내용은AWS Snowball 사용 설명서Snowball을 통한 데이터 전송 섹션을 참조하세요.

Snowball Edge를 사용하는 경우 Snowball Edge 클라이언트를 사용하여 어플라이언스의 잠금을 해제합니다. 자세한 내용은AWS Snowball 개발자 안내서의 Snowball 클라이언트 사용을 참조하세요.

API 엔드포인트

API 엔드포인트는 API 호출에 대한 HTTP URI에서 호스트로 사용되는 DNS(Domain Name Service) 이름입니다. 이러한 API 엔드포인트는 리전별로 고유하며 다음과 같은 형식을 사용합니다.

snowball.aws-region.amazonaws.com

예를 들어 미국 서부(오레곤) 리전의 Snowball Edge API 엔드포인트는 다음과 같습니다.

snowball.us-west-2.amazonaws.com

Snowball Edge AWS 리전가 지원하는 목록(작업을 생성하고 관리할 수 있는 목록)은 AWS Import/Export의 섹션을 참조하세요AWS 일반 참조.

리전별 API 엔드포인트는 API 호출 시 액세스할 수 있는 Snowball Edge 리소스의 범위를 정의합니다. 예를 들어, 이전 엔드포인트를 사용하여 ListJobs 작업을 호출할 경우 계정에 생성된 미국 서부(오레곤) 리전의 작업 목록이 표시됩니다.

API 버전

호출에 사용 중인 API 버전은 요청 URI의 첫 번째 경로 세그먼트로 식별할 수 있으며 형식은 ISO 8601 날짜입니다. 이 문서에서는 API 버전 2016-06-30에 대해 설명합니다.

API 권한 정책 참조

Snowball Edge용 작업 관리 API를 사용하여 작업을 생성하려면 다음 정책이 필요합니다.

작업 생성을 위한 역할 신뢰 정책

작업 관리 API를 사용하여 작업을 생성하려면 다음과 같은 신뢰 정책이 필요합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "importexport.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSIE" } } } ] }
참고

신뢰 정책에 대한 자세한 내용은 IAM 사용 설명서의 역할 변경 섹션을 참조하세요.

가져오기 작업 생성을 위한 역할 정책

가져오기 작업을 생성하려면 다음과 같은 역할 정책이 필요합니다.

JSON
{ "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" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

내보내기 작업 생성을 위한 역할 정책

내보내기 작업을 생성하려면 다음과 같은 역할 정책이 필요합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

작업 생성을 위한 Amazon S3 버킷 정책 보안 주체

경우에 따라 Snowball Edge와 함께 사용하는 Amazon S3 버킷에는 수임된 역할의 역할 세션 이름을 나열해야 하는 버킷 정책이 있습니다. 이러한 경우 해당 정책에 AWSImportExport-Validation을 식별하는 보안 주체를 지정해야 합니다. 다음 Amazon S3 버킷 정책 예에서 방법을 보여줍니다.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "AllowAWSSnowballToCreateJobs", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/rolename", "arn:aws:sts::111122223333:assumed-role/rolename/AWSImportExport-Validation", "arn:aws:iam::111122223333:root" ] }, "Action": "S3:*", "Resource": ["arn:aws:s3:::examplebucket/*"] } }

이 정책 예에서는 NotPrincipal 요소로 지정한 보안 주체만 제외하고 모든 보안 주체에 대한 액세스를 거부합니다. NotPrincipal 사용 방법에 대한 자세한 내용은 IAM 사용 설명서NotPrincipal 섹션을 참조하세요.

참고

의 작업의 경우AWS GovCloud (US) Snowball Edge는 AWSIEJob를 수임된 역할의 역할 세션 이름으로 사용합니다.

Snowball Edge 및 Snowball Edge에 대한 IAM 역할 생성

IAM 역할 정책은 Amazon S3 버킷에 대한 읽기 및 쓰기 권한을 사용하여 생성해야 합니다. IAM 역할에는 Snowball Edge와 신뢰 관계도 있어야 합니다. 신뢰 관계가 있다는 것은가 데이터를 가져오는지 내보내AWS는지에 따라 Snowball 및 Amazon S3 버킷에 데이터를 쓸 수 있음을 의미합니다.

에서 작업을 생성할 때 필요한 IAM 역할AWS Snow 패밀리 관리 콘솔생성은 권한 섹션의 4단계에서 수행됩니다. 이 프로세스는 자동으로 수행됩니다. Snowball Edge가 수임하도록 허용하는 IAM 역할은 전송된 데이터가 있는 Snowball이 도착할 때만 버킷에 데이터를 쓰는 데 사용됩니다AWS. 다음 절차에서는 이 프로세스를 간략하게 설명합니다.

가져오기 작업을 위한 IAM 역할 생성
  1. 에 로그인AWS Management Console하고 https://console.aws.amazon.com/importexport/AWS Snowball Edge콘솔을 엽니다.

  2. 작업 생성을 선택합니다.

  3. 1단계에서 가져오기 작업의 세부 정보를 Amazon S3에 작성한 다음 다음을 선택합니다.

  4. 2단계에서 [Permission]에서 [Create/Select IAM Role]을 선택합니다.

    IAM Management Console이 열리며,AWS가 지정된 Amazon S3 버킷에 객체를 복사하는 데 사용하는 IAM 역할을 보여줍니다.

  5. 이 페이지에서 세부 정보를 검토한 후 허용을 선택합니다.

    로 돌아갑니다.AWS Snow 패밀리 관리 콘솔여기서 선택한 IAM 역할 ARN에는 방금 생성한 IAM 역할의 Amazon 리소스 이름(ARN)이 포함됩니다.

  6. 다음을 선택하여 IAM 역할 생성을 완료합니다.

이전 절차에서는 사용자가 데이터를 가져오려고 하는 Amazon S3 버킷에 대한 쓰기 권한이 있는 IAM 역할을 생성합니다. 생성되는 IAM 역할은 가져오기 작업을 위한 것인지 내보내기 작업을 위한 것인지 여부에 따라 다음 중 한 가지 구조를 가집니다.

가져오기 작업을 위한 IAM 역할

JSON
{ "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" ], "Resource": "arn:aws:s3:::*" } ] }

AWS KMS관리형 키를 사용한 서버 측 암호화(SSE-KMS)를 사용하여 가져오기 작업과 연결된 Amazon S3 버킷을 암호화하는 경우 IAM 역할에 다음 명령문도 추가해야 합니다.

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }

내보내기 작업을 위한 IAM 역할

JSON
{ "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:region:account-id:key/key-id" }