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

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

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

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

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

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

KCL コンシューマーアプリケーションの最小限の IAM アクセス許可
サービス アクション リソース (ARN) 目的
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 にアップロードします。CloudWatch では PutMetricData アクションが実行される特定のリソースが存在しないため、アスタリスク (*) が使用されています。

注記

ARNsStreamName」、KCLApplicationName」をそれぞれ独自のAWS リージョン名前、AWS アカウント数値、Kinesis データストリーム名、および KCL アプリケーション名に置き換えます。KCL 3.x は、DynamoDB にさらに 2 つのメタデータテーブルを作成します。KCL によって作成された DynamoDB メタデータテーブルの詳細については、KCL における DynamoDB メタデータテーブルと負荷分散 を参照してください。KCL が作成するメタデータテーブルの名前を設定でカスタマイズしている場合は、KCL アプリケーション名ではなく、その指定したテーブル名を使用してください。

以下は、KCL コンシューマーアプリケーションのサンプルポリシードキュメントです。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012: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:us-east-1:123456789012: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:us-east-1:123456789012:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012: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 アプリケーション名に置き換えます。