엔드포인트 또는 세그먼트를 내보내기 위한 IAM 역할 - Amazon Pinpoint

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

엔드포인트 또는 세그먼트를 내보내기 위한 IAM 역할

내보내기 작업을 생성하여 엔드포인트 목록을 얻을 수 있습니다. 내보내기 작업을 생성할 경우 프로젝트 ID를 지정해야 하며, 선택에 따라 세그먼트 ID를 지정할 수 있습니다. 이렇게 하면 Amazon Pinpoint는 프로젝트 또는 세그먼트와 연결된 엔드포인트 목록을 Amazon Simple Storage Service(S3) 버킷으로 내보내게 됩니다. 이 결과 만들어지는 파일에는 JSON 형식의 엔드포인트와 그 속성(예: 채널, 주소, 옵트인/옵트아웃 상태, 생성일, 엔드포인트 ID)의 목록이 들어 있습니다.

내보내기 작업을 생성하려면 Amazon Pinpoint에서 Amazon S3 버킷에 쓸 수 있도록 허용하는 IAM 역할을 구성해야 합니다. 역할 구성 프로세스는 두 단계로 구성됩니다.

  1. 엔터티(이 경우 Amazon Pinpoint)가 특정 Amazon S3 버킷에 쓰도록 허용하는 IAM 정책을 생성합니다.

  2. IAM 역할을 생성하여 여기에 정책을 연결합니다.

이 주제에는 이러한 두 단계를 완료하는 절차가 포함되어 있습니다. 이 절차에서는 이미 Amazon S3 버킷을 생성했고, 내보낸 세그먼트를 저장할 폴더가 그 버킷 안에 있다고 가정합니다. 버킷 생성에 대한 내용을 알아보려면 Amazon Simple Storage Service 사용 설명서버킷 생성을 참조하세요.

또한 이 절차에서는 AWS Command Line Interface (AWS CLI)를 이미 설치하여 구성했다고 가정합니다. 설정에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 AWS CLI설치를 참조하십시오. AWS CLI

1단계: IAM 정책 생성

IAM 정책은 자격 증명 또는 리소스와 같은 엔터티에 대한 권한을 정의합니다. Amazon Pinpoint 엔드포인트를 내보내는 역할을 생성하려면 특정 Amazon S3 버킷 내의 특정 폴더로 쓰기를 허용하는 정책을 생성해야 합니다. 아래의 정책 예제는 최소 권한, 즉 단일 태스크를 수행하는 데 필요한 권한만 부여하는 보안 사례를 따릅니다.

IAM 정책을 생성하려면
  1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUserToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket" ], "Condition": { "StringEquals": { "s3:delimiter": [ "/" ], "s3:prefix": [ "", "Exports/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "Exports/*" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket/Exports/*" ] } ] }

    앞 코드에서 example-bucket의 모든 인스턴스를 세그먼트 정보를 내보낼 폴더가 포함된 Amazon S3 버킷의 이름으로 바꿉니다. 또한 내보내기의 모든 인스턴스를 폴더 자체의 이름으로 바꿉니다.

    작업을 마치면 파일 이름을 s3policy.json(으)로 저장합니다.

  2. AWS CLI를 사용하여 s3policy.json 파일이 있는 디렉토리로 이동합니다. 그리고 다음 명령을 사용하여 정책을 생성합니다.

    aws iam create-policy --policy-name s3ExportPolicy --policy-document file://s3policy.json

    정책이 무사히 생성되면 다음과 비슷한 출력이 표시됩니다.

    { "Policy": { "CreateDate": "2018-04-11T18:44:34.805Z", "IsAttachable": true, "DefaultVersionId": "v1", "AttachmentCount": 0, "PolicyId": "ANPAJ2YJQRJCG3EXAMPLE", "UpdateDate": "2018-04-11T18:44:34.805Z", "Arn": "arn:aws:iam::123456789012:policy/s3ExportPolicy", "PolicyName": "s3ExportPolicy", "Path": "/" } }

    정책의 Amazon 리소스 이름(ARN)을 복사합니다(앞 예에서 arn:aws:iam::123456789012:policy/s3ExportPolicy). 다음 섹션에서 새 역할을 만들 때 이 ARN을 공급해야 합니다.

    참고

    CreatePolicy 작업을 수행할 권한이 없는 계정이라는 메시지가 보이면 새 IAM 정책과 역할을 생성할 수 있는 사용자에게 정책을 연결해야 합니다. 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 제거를 참조하세요.

2단계: IAM 역할 생성

IAM 정책을 작성했으므로 역할을 생성하여 여기에 정책을 연결할 수 있습니다. 각 IAM 역할에는 신뢰 정책이 포함되어 있습니다. 이 정책은 어떤 엔터티가 역할을 수임하도록 허용되는지 지정하는 규칙 집합입니다. 이 섹션에서는 Amazon Pinpoint에 역할을 수임하도록 허용하는 신뢰 정책을 생성합니다. 다음에는 역할 자체를 생성한 다음 이전 단계에서 만든 정책을 연결합니다.

IAM 역할을 생성하려면
  1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"pinpoint.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:mobiletargeting:region:accountId:apps/applicationId" } } } ] }

    파일을 trustpolicy.json(으)로 저장합니다.

  2. AWS CLI를 사용하여 trustpolicy.json 파일이 있는 디렉토리로 이동합니다. 다음 명령을 입력하여 새 역할을 생성합니다.

    aws iam create-role --role-name s3ExportRole --assume-role-policy-document file://trustpolicy.json
  3. 명령줄에서 다음 명령을 실행하여 이전 단계에서 생성한 정책을 방금 생성한 역할에 연결합니다.

    aws iam attach-role-policy --policy-arn arn:aws:iam::123456789012:policy/s3ExportPolicy --role-name s3ExportRole

    이전 명령에서 arn:aws:iam: ExportPolicy :123456789012:policy/s3 를 이전 섹션에서 생성한 정책의 ARN으로 대체합니다.