IAM KCLコンシューマーアプリケーションに必要なアクセス許可 - Amazon Kinesis Data Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IAM KCLコンシューマーアプリケーションに必要なアクセス許可

KCL コンシューマーアプリケーションに関連付けられたIAMロールまたはユーザーに次のアクセス許可を追加する必要があります。

のセキュリティのベストプラクティスは、さまざまなリソースへのアクセスを制御するためにきめ細かなアクセス許可の使用を AWS 指示します。 AWS Identity and Access Management (IAM) を使用すると、 でユーザーとユーザーのアクセス許可を管理できます AWS。IAM ポリシーには、許可されるアクションと、アクションが適用されるリソースが明示的に一覧表示されます。

次の表は、KCLコンシューマーアプリケーションに一般的に必要な最小IAMアクセス許可を示しています。

KCL コンシューマーアプリケーションの最小IAMアクセス許可
サービス アクション リソース (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には、 の ss アクションが必要です。

Amazon DynamoDB

Query

リーステーブルのグローバルセカンダリインデックス。

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

このアクションは、DynamoDB で作成されたリーステーブルのグローバルセカンダリインデックスを読み取るKCLために に必要です。

Amazon CloudWatch

PutMetricData

*

アプリケーションのモニタリングに役立つメトリクス CloudWatch を にアップロードします。アスタリスク (*) は、PutMetricDataアクション CloudWatch が呼び出されるスプシフィックリソースがないために使用されます。

注記

の「リージョン」、「アカウントStreamName」、「」、KCLApplicationName「」を、それぞれARNs独自の AWS リージョン、 AWS アカウント 番号、Kinesis データストリーム名、およびKCLアプリケーション名に置き換えます。KCL 3.x は、DynamoDB にさらに 2 つのメタデータテーブルを作成します。によって作成された 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アプリケーションの名前に置き換えます。