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

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

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

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

リーステーブル (KCL によって作成された DynamoDB のメタデータテーブル。

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

これらのアクションは、KCL が DynamoDB で作成されたリーステーブルを管理するために必要です。

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

KCL によって作成されたワーカーメトリクスとコーディネーター状態テーブル (DynamoDB のメタデータテーブル)。

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

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

これらのアクションは、KCL が DynamoDB でワーカーメトリクスとコーディネーター状態メタデータテーブルを管理するために必要です。

Amazon DynamoDB

Query

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

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

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

Amazon CloudWatch

PutMetricData

*

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

注記

ARNsStreamName」、KCLApplicationName」をそれぞれ独自の AWS リージョン名前、 AWS アカウント 数値、Kinesis データストリーム名、および KCL アプリケーション名に置き換えます。KCL 3.x は、DynamoDB にさらに 2 つのメタデータテーブルを作成します。KCL によって作成された DynamoDB メタデータテーブルの詳細については、「」を参照してくださいKCL での DynamoDB メタデータテーブルとロードバランシング。設定を使用して 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 を your AWS リージョン (us-east-1 など) に置き換えます。

  • ACCOUNT_ID を自分の AWS アカウント ID に置き換えます。

  • STREAM_NAME を Kinesis データストリームの名前に置き換えます。

  • CONSUMER_NAME をコンシューマーの名前に置き換えます。通常は KCL を使用する場合のアプリケーション名です。

  • KCL_APPLICATION_NAME を KCL アプリケーションの名前に置き換えます。