2단계: IAM 정책 및 사용자 생성 - Amazon Kinesis Data Streams

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

2단계: IAM 정책 및 사용자 생성

보안 모범 사례에서는 세분화된 권한을 사용하여 다양한 리소스에 대한 액세스를 제어하도록 AWS 지시합니다. AWS Identity and Access Management (IAM) 를 사용하면 에서 사용자 및 사용자 권한을 관리할 수 있습니다. AWSIAM정책에는 허용되는 작업과 해당 작업이 적용되는 리소스가 명시적으로 나열됩니다.

다음은 Kinesis Data Streams 생산자 및 소비자에 대해 일반적으로 필요한 최소 권한입니다.

생산자
작업 Resource 용도
DescribeStream, DescribeStreamSummary, DescribeStreamConsumer Kinesis 데이터 스트림 레코드를 쓰려고 시도하기 전에 생산자는 스트림이 존재하고 활성 상태인지 여부, 샤드가 스트림에 포함되어 있는지 여부, 그리고 스트림에 소비자가 있는지 여부를 확인합니다.
SubscribeToShard, RegisterStreamConsumer Kinesis 데이터 스트림 Kinesis 데이터 스트림 샤드에 소비자를 구독 및 등록합니다.
PutRecord, PutRecords Kinesis 데이터 스트림 레코드를 Kinesis Data Streams에 씁니다.
소비자
작업 리소스 용도
DescribeStream Kinesis 데이터 스트림 레코드를 읽으려고 시도하기 전에 소비자는 스트림이 존재하는지 및 활성 상태인지 여부와 샤드가 스트림에 포함되어 있는지 여부를 확인합니다.
GetRecords, GetShardIterator Kinesis 데이터 스트림 Kinesis Data Streams 샤드에서 레코드를 읽습니다.
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Amazon DynamoDB 테이블 Kinesis Client Library (KCL) 를 사용하여 소비자를 개발한 경우 애플리케이션의 처리 상태를 추적하려면 DynamoDB 테이블에 대한 권한이 필요합니다. 시작된 첫 번째 소비자가 테이블을 생성합니다.
DeleteItem Amazon DynamoDB 테이블 소비자가 Kinesis Data Streams 샤드에서 분할/병합 작업을 수행하는 경우에 사용됩니다.
PutMetricData 아마존 CloudWatch 로그 KCL또한 메트릭을 CloudWatch 업로드하므로 애플리케이션을 모니터링하는 데 유용합니다.

이 애플리케이션의 경우 위의 모든 권한을 부여하는 단일 IAM 정책을 생성합니다. 실제로 생산자에 대한 정책 하나와 소비자에 대한 정책 하나 등 정책 두 개의 생성을 고려해야 할 수 있습니다.

IAM 정책 생성
  1. 새 스트림의 Amazon 리소스 이름 (ARN) 을 찾습니다. 세부 정보 탭 ARN 상단에 스트림으로 ARN 나열되어 있습니다. ARN형식은 다음과 같습니다.

    arn:aws:kinesis:region:account:stream/name
    region

    리전 코드입니다(예: us-west-2). 자세한 내용은 리전 및 가용 영역 개념을 참조하십시오.

    account

    AWS 계정 설정에 표시된 계정 ID.

    name

    1단계: 데이터 스트림 생성의 스트림 이름입니다. 이 경우 StockTradeStream입니다.

  2. 소비자가 사용하고 첫 번째 소비자 인스턴스에서 생성할 DynamoDB 테이블을 결정합니다. ARN 형식은 다음과 같아야 합니다.

    arn:aws:dynamodb:region:account:table/name

    리전과 계정은 이전 단계와 동일한 위치에서 가져오지만 이때 이름은 소비자 애플리케이션에서 생성되고 사용되는 테이블의 이름입니다. 소비자가 사용하는 것은 애플리케이션 이름을 테이블 이름으로 사용합니다. KCL 나중에 사용되는 애플리케이션 이름인 StockTradesProcessor를 사용합니다.

  3. IAM콘솔의 정책 (https://console.aws.amazon.com/iam/홈 #policies) 에서 정책 생성을 선택합니다. 정책 작업을 처음 해보는 경우 시작하기, IAM 정책 생성을 선택합니다.

  4. 정책 생성기 옆의 선택을 선택합니다.

  5. Amazon Kinesis를 AWS 서비스로 선택하십시오.

  6. DescribeStream, GetShardIterator, GetRecords, PutRecordPutRecords를 허용된 작업으로 선택합니다.

  7. 1단계에서 생성한 ARN 것을 입력합니다.

  8. 다음의 각각에 대해 Add Statement(문 추가)를 사용합니다.

    AWS 서비스 작업 ARN
    Amazon DynamoDB CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem 2단계에서 ARN 생성한
    아마존 CloudWatch PutMetricData *

    를 지정할 때 사용되는 별표 (*) 는 필수가 아닙니다. ARN 이 경우 PutMetricData 액션이 호출되는 특정 리소스가 없기 때문입니다. CloudWatch

  9. 다음 단계를 선택합니다.

  10. Policy Name(정책 이름)StockTradeStreamPolicy로 변경하고, 코드를 검토한 다음 Create Policy(정책 생성)를 선택합니다.

이를 통해 생성된 정책 문서는 다음과 같아야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt123", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream" ] }, { "Sid": "Stmt234", "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream/*" ] }, { "Sid": "Stmt456", "Effect": "Allow", "Action": [ "dynamodb:*" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123:table/StockTradesProcessor" ] }, { "Sid": "Stmt789", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": [ "*" ] } ] }
IAM 사용자를 생성하려면
  1. 에서 IAM https://console.aws.amazon.com/iam/콘솔을 여십시오.

  2. 사용자 페이지에서 사용자 추가를 선택합니다.

  3. 사용자 이름StockTradeStreamUser을 입력합니다.

  4. Access type(액세스 유형)에서 Programmatic access(프로그래밍 방식 액세스)를 선택한 다음 Next: Permissions(다음: 권한)를 선택합니다.

  5. 기존 정책 직접 첨부를 선택합니다.

  6. 생성한 정책의 이름으로 검색합니다. 정책 이름 왼쪽에 있는 확인란을 선택하고 Next: Review(다음: 검코)를 선택합니다.

  7. 세부 정보와 요약을 검토하고 Create user(사용자 생성)를 선택합니다.

  8. Access key ID(액세스 키 ID)를 복사하고 비공개로 저장합니다. Secret access key(보안 액세스 키)에서 Show(표시)를 선택하고 키도 비공개로 저장합니다.

  9. 액세스 및 보안 키를 사용자만 액세스할 수 있는 안전한 위치에 있는 로컬 파일에 붙여넣습니다. 이 애플리케이션의 경우 ~/.aws/credentials라는 파일 이름을 생성합니다(엄격한 권한 포함). 파일은 다음 형식이어야 합니다.

    [default] aws_access_key_id=access key aws_secret_access_key=secret access key
IAM정책을 사용자에게 연결하려면
  1. IAM콘솔에서 정책을 열고 정책 작업을 선택합니다.

  2. StockTradeStreamPolicyAttach(연결)를 선택합니다.

  3. StockTradeStreamUserAttach Policy(정책 연결)를 선택합니다.

다음 단계

3단계: 구현 코드 다운로드 및 작성