Amazon Cognito 사용자 풀 가져오기 작업 생성 및 실행 - Amazon Cognito

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

Amazon Cognito 사용자 풀 가져오기 작업 생성 및 실행

이 섹션에서는 Amazon Cognito 콘솔과 AWS Command Line Interface(AWS CLI)를 사용하여 사용자 풀 가져오기 작업을 생성하고 실행하는 방법을 설명합니다.

CSV 파일에서 사용자 가져오기(콘솔)

다음 절차에서는 CSV 파일에서 사용자를 가져오는 방법에 대해 설명합니다.

CSV 파일에서 사용자를 가져오려면(콘솔)
  1. Amazon Cognito 콘솔로 이동합니다. AWS 자격 증명을 입력하라는 메시지가 나타날 수 있습니다.

  2. [사용자 풀(User Pools)]을 선택합니다.

  3. 목록에서 기존 사용자 풀을 선택합니다.

  4. 사용자(Users) 탭을 선택합니다.

  5. Import users(사용자 가져오기) 섹션에서 Create an import job(가져오기 작업 생성)을 선택합니다.

  6. Create import job(가져오기 작업 생성) 페이지에 Job name(작업 이름)을 입력합니다.

  7. Create a new IAM role(새 IAM 역할 생성) 또는Use an existing IAM role(기존 IAM 역할 사용)을 선택합니다.

    1. Create a new IAM role(새 IAM 역할 생성)을 선택한 경우 새 역할의 이름을 입력합니다. Amazon Cognito는 올바른 권한과 신뢰 관계를 가진 역할을 자동으로 생성합니다. 가져오기 작업을 생성하는 IAM 보안 주체는 IAM 역할을 생성할 권한이 있어야 합니다.

    2. Use an existing IAM role(기존 IAM 역할 사용)을 선택했다면 IAM role selection(IAM 역할 선택) 목록에서 역할을 선택합니다. 이 역할에는 CloudWatch Logs IAM 역할 생성에서 설명하는 권한 및 신뢰 정책이 있어야 합니다.

  8. Create job(작업 생성)을 선택하여 작업을 제출하되, 시작은 나중에 합니다. 작업을 제출하고 즉시 시작하려면 Create and start job(작업 생성 및 시작)을 선택합니다.

  9. 작업을 생성했지만 시작하지 않았다면 나중에 작업을 시작할 수 있습니다. Import users(사용자 가져오기)의 Users(사용자) 탭에서 가져오기 작업을 선택하고 Start(시작)를 선택합니다. AWS SDK에서 StartUserImportJob API 요청을 제출해도 됩니다.

  10. Import users(사용자 가져오기)의 Users(사용자) 탭에서 사용자 가져오기 작업의 진행 상황을 모니터링합니다. 작업이 실패할 경우 Status(상태) 값을 선택합니다. 자세한 내용을 보려면 View the CloudWatch logs for more details(CloudWatch 로그 상세 정보 보기)를 선택하고 CloudWatch Logs 콘솔에서 문제를 검토합니다.

사용자 가져오기(AWS CLI)

다음 CLI 명령을 사용하여 사용자를 사용자 풀로 가져올 수 있습니다.

  • create-user-import-job

  • get-csv-header

  • describe-user-import-job

  • list-user-import-jobs

  • start-user-import-job

  • stop-user-import-job

이러한 명령의 명령줄 옵션 목록을 표시하려면 help 명령줄 옵션을 사용합니다. 예:

aws cognito-idp get-csv-header help

사용자 가져오기 작업 생성

CSV 파일을 생성한 후 다음 CLI 명령을 실행하여 사용자 가져오기 작업을 생성합니다. 여기서 JOB_NAME은 선택한 작업 이름이고, USER_POOL_ID는 새 사용자가 추가되는 사용자 풀의 사용자 풀 ID이며, ROLE_ARNCloudWatch Logs IAM 역할 생성에서 받은 역할 ARN입니다.

aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"

응답에 반환되는 PRE_SIGNED_URL은 15 분 동안 유효합니다. 이 시간이 지나면 만료되며 새 URL을 받으려면 새 사용자 가져오기 작업을 만들어야 합니다.

예 샘플 응답:
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

사용자 가져오기 작업의 상태 값

사용자 가져오기 명령에 대한 응답에 다음 Status 값 중 하나가 표시됩니다.

  • Created - 작업이 생성되었지만 시작되지 않았습니다.

  • Pending - 전환 상태입니다. 작업을 시작했지만 아직 사용자 가져오기를 시작하지 않았습니다.

  • InProgress - 작업이 시작되었으며 사용자를 가져오는 중입니다.

  • Stopping - 작업을 중지했지만 작업에서 아직 사용자 가져오기가 중지되지 않았습니다.

  • Stopped - 작업을 중지했으며 작업에서 사용자 가져오기가 중지되었습니다.

  • Succeeded - 작업이 성공적으로 완료되었습니다.

  • Failed - 오류로 인해 작업이 중지되었습니다.

  • Expired - 작업을 생성했지만 24~48시간 이내에 작업을 시작하지 않았습니다. 작업과 연결된 모든 데이터가 삭제되었으며 작업을 시작할 수 없습니다.

CSV 파일 업로드

다음 curl 명령을 사용하여 사용자 데이터가 포함된 CSV 파일을 create-user-import-job 명령의 응답에서 얻은 미리 서명된 URL에 업로드합니다.

curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"

이 명령의 출력에서 "We are completely uploaded and fine"이라는 문구를 찾습니다. 이 구문은 파일이 성공적으로 업로드되었음을 나타냅니다.

사용자 가져오기 작업 설명

사용자 가져오기 작업에 대한 설명을 보려면 다음 명령을 사용합니다. 여기서 USER_POOL_ID는 사용자 풀 ID이며, JOB_ID는 사용자 가져오기 작업을 생성할 때 반환된 작업 ID입니다.

aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
예 샘플 응답:
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

앞의 샘플 출력에서 PRE_SIGNED_URL은 CSV 파일을 업로드한 URL입니다. ROLE_ARN은 역할을 생성할 때 받은 CloudWatch Logs 역할 ARN입니다.

사용자 가져오기 작업 나열

사용자 가져오기 작업을 나열하려면 다음 명령을 사용합니다.

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
예 샘플 응답:
{ "UserImportJobs": [ { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 }, { "CompletionDate": 1470954227.701, "StartDate": 1470954226.086, "Status": "Failed", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "Too many users have failed or been skipped during the import.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 5, "CreationDate": 1470953929.313 } ], "PaginationToken": "PAGINATION_TOKEN" }

작업은 마지막으로 생성한 것부터 처음으로 생성한 것까지 시간순으로 나열됩니다. 두 번째 작업 다음에 있는 PAGINATION_TOKEN 문자열은 이 list 명령에 대한 추가 결과가 있음을 나타냅니다. 추가 결과를 나열하려면 다음과 같이 --pagination-token 옵션을 사용합니다.

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"

사용자 가져오기 작업 시작

사용자 가져오기 작업을 시작하려면 다음 명령을 사용합니다.

aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"

계정당 한 번에 하나의 가져오기 작업만 활성화할 수 있습니다.

예 샘플 응답:
{ "UserImportJob": { "Status": "Pending", "StartDate": 1470957851.483, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

사용자 가져오기 작업 중지

진행 중인 사용자 가져오기 작업을 중지하려면 다음 명령을 사용합니다. 작업을 중지한 후에는 다시 시작할 수 없습니다.

aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
예 샘플 응답:
{ "UserImportJob": { "CompletionDate": 1470958050.571, "StartDate": 1470958047.797, "Status": "Stopped", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "The Import Job was stopped by the developer.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957972.387 } }