IAM KCL 소비자 애플리케이션에 필요한 권한 - Amazon Kinesis Data Streams

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

IAM KCL 소비자 애플리케이션에 필요한 권한

KCL 소비자 애플리케이션과 연결된 IAM 역할 또는 사용자에게 다음 권한을 추가해야 합니다.

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

다음 표에는 KCL 소비자 애플리케이션에 일반적으로 필요한 최소 IAM 권한이 나와 있습니다.

KCL 소비자 애플리케이션에 대한 최소 IAM 권한
Service 작업 리소스(ARNs) 용도
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

KCL 애플리케이션이 데이터를 처리할 Kinesis 데이터 스트림입니다.

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

레코드를 읽으려고 하기 전에 소비자는 데이터 스트림이 존재하는지, 데이터 스트림이 활성 상태인지, 샤드가 데이터 스트림에 포함되어 있는지를 확인합니다.

소비자를 샤드에 등록합니다.

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

KCL 애플리케이션이 데이터를 처리할 Kinesis 데이터 스트림입니다.

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

샤드에서 레코드를 읽습니다.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

KCL 애플리케이션이 데이터를 처리할 Kinesis 데이터 스트림입니다. 향상된 팬아웃(EFO) 소비자를 사용하는 경우에만 이 작업을 추가합니다.

arn:aws:kinesis:region:account:stream/StreamName/consumer/*

향상된 팬아웃(EFO) 소비자를 위한 샤드를 구독합니다.

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

임대 테이블( DynamoDB의 메타데이터 테이블로 에서 생성됨KCL.

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

이러한 작업은 DynamoDB 에서 생성된 임대 테이블을 관리하는 KCL 데 필요합니다.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

에서 생성한 작업자 지표 및 조정자 상태 테이블( DynamoDB 메타데이터 테이블). KCL

arn:aws:dynamodb:region:account:table/KCLApplicationName-WorkerMetricStats

arn:aws:dynamodb:region:account:table/KCLApplicationName-CoordinatorState

이 작업은 DynamoDB 에서 작업자 지표 및 코디네이터 상태 메타데이터 테이블을 관리하는 KCL 데 필요합니다.

Amazon DynamoDB

Query

임대 테이블의 글로벌 보조 인덱스입니다.

arn:aws:dynamodb:region:account:table/KCLApplicationName/index/*

이 작업은 DynamoDB 에서 생성된 임대 테이블의 글로벌 보조 인덱스를 읽는 KCL 데 필요합니다.

Amazon CloudWatch

PutMetricData

*

애플리케이션을 모니터링하는 데 CloudWatch 유용한 에 지표를 업로드합니다. PutMetricData 작업이 호출 CloudWatch 되는 spcific 리소스가 없기 때문에 별표(*)가 사용됩니다.

참고

의 ' 리전', '계정', 'StreamName, ' 및 'KCLApplicationName'를 각각 ARNs 고유한 AWS 리전, AWS 계정 번호, Kinesis 데이터 스트림 이름 및 KCL 애플리케이션 이름으로 바꿉니다. KCL 3.x는 DynamoDB 에 두 개의 메타데이터 테이블을 추가로 생성합니다. 에서 생성한 DynamoDB 메타데이터 테이블에 대한 자세한 내용은 섹션을 KCL참조하세요DynamoDB 메타데이터 테이블 및 로드 밸런싱 KCL. 구성을 사용하여 에서 생성한 메타데이터 테이블의 이름을 사용자 지정하는 경우 KCL 애플리케이션 이름 대신 지정된 테이블 이름을 KCL사용합니다.

다음은 KCL 소비자 애플리케이션에 대한 예제 정책 문서입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME/consumer/*" }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME/index/*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }

이 예제 정책을 사용하기 전에 다음 항목을 확인하세요.

  • 를 REGION로 바꿉니다 AWS 리전 (예: us-east-1).

  • ACCOUNT_ID를 AWS 계정 ID로 바꿉니다.

  • STREAM_NAME를 Kinesis 데이터 스트림의 이름으로 바꿉니다.

  • CONSUMER_NAME를 소비자의 이름으로 바꾸고, 일반적으로 를 사용할 때 애플리케이션 이름으로 바꿉니다KCL.

  • KCL_APPLICATION_NAME를 KCL 애플리케이션 이름으로 바꿉니다.