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

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

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

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

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

생산자
작업 리소스 용도
DescribeStream, DescribeStreamSummary, DescribeStreamConsumer Kinesis 데이터 스트림 레코드를 읽으려고 하기 전에 소비자는 데이터 스트림이 존재하는지, 데이터 스트림이 활성 상태인지, 샤드가 데이터 스트림에 포함되어 있는지를 확인합니다.
SubscribeToShard, RegisterStreamConsumer Kinesis 데이터 스트림 소비자를 구독하고 샤드에 등록합니다.
PutRecord, PutRecords Kinesis 데이터 스트림 Kinesis Data Streams 스트림에 레코드를 씁니다.
소비자
작업 리소스 용도
DescribeStream Kinesis 데이터 스트림 레코드를 읽으려고 하기 전에 소비자는 데이터 스트림이 존재하는지, 데이터 스트림이 활성 상태인지, 샤드가 데이터 스트림에 포함되어 있는지를 확인합니다.
GetRecords, GetShardIterator Kinesis 데이터 스트림 샤드에서 레코드를 읽습니다.
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Amazon DynamoDB 테이블 Kinesis Client Library (KCL) (버전 1.x 또는 2.x) 를 사용하여 소비자를 개발하는 경우, 애플리케이션의 처리 상태를 추적하려면 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
    리전

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

    account

    이AWS에 표시된 대로 계정 ID (와 같이)계정 설정.

    name

    위 단계에서 생성한 데이터 스트림의 이름입니다(StockTradeStream).

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

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

    리전 및 계정 ID는 이 자습서에서 사용하는 데이터 스트림의 ARN에 있는 값과 동일하지만이름는 소비자 애플리케이션에서 생성되고 사용되는 DynamoDB 테이블의 이름입니다. KCL은 애플리케이션 이름을 테이블 이름으로 사용합니다. 이 단계에서는 다음을 사용합니다.StockTradesProcessor의 DynamoDB 테이블 이름에 대한 입니다. 이 이름은 이 자습서의 이후 단계에서 사용되는 애플리케이션 이름이기 때문입니다.

  3. IAM 콘솔에서정책(https://console.aws.amazon.com/iam/home#policies), 선택정책 생성. IAM 정책을 사용한 첫 번째 작업인 경우 를 선택합니다.시작,정책 생성.

  4. 선택Select다음정책 생성기.

  5. 선택Amazon Kinesis로AWS서비스.

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

  7. 이 자습서에서 사용하는 데이터 스트림의 ARN을 입력합니다.

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

    AWS 서비스 작업 ARN
    Amazon DynamoDB CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem 이 절차의 2단계에서 생성한 DynamoDB 테이블의 ARN입니다.
    Amazon CloudWatch PutMetricData *

    별표(*)는 ARN이 필요하지 않다고 지정할 때 사용됩니다. 이 경우에는 PutMetricData 작업이 호출된 CloudWatch에서 특정 리소스가 없기 때문입니다.

  9. 다음 단계(Next Step)를 선택합니다.

  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. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. Users(사용자) 페이지에서 Add user(사용자 추가)를 선택합니다.

  3. [User name]에 StockTradeStreamUser를 입력합니다.

  4. 액세스 유형, 선택프로그래밍 방식 액세스를 선택한 다음 를 선택합니다.다음: Permissions)]을 선택합니다.

  5. [Attach existing policies directly]를 선택합니다.

  6. 위의 절차에서 만든 정책을 이름으로 검색합니다(StockTradeStreamPolicy). 정책 이름 왼쪽의 확인란을 선택한 다음 을 선택합니다.다음: 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단계: 코드 다운로드 및 빌드