翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IAM KCLコンシューマーアプリケーションに必要なアクセス許可
KCL コンシューマーアプリケーションに関連付けられたIAMロールまたはユーザーに次のアクセス許可を追加する必要があります。
のセキュリティのベストプラクティスは、さまざまなリソースへのアクセスを制御するためにきめ細かなアクセス許可の使用を AWS 指示します。 AWS Identity and Access Management (IAM) を使用すると、 でユーザーとユーザーのアクセス許可を管理できます AWS。IAM ポリシーには、許可されるアクションと、アクションが適用されるリソースが明示的に一覧表示されます。
次の表は、KCLコンシューマーアプリケーションに一般的に必要な最小IAMアクセス許可を示しています。
サービス | アクション | リソース (ARNs) | 目的 |
---|---|---|---|
Amazon Kinesis Data Streams |
|
KCL アプリケーションがデータを処理する Kinesis データストリーム。
|
レコードを読み取る前に、コンシューマーは、データストリームが存在すること、アクティブであること、シャードを含んでいることを確認します。 コンシューマーをシャードに登録します。 |
Amazon Kinesis Data Streams |
|
KCL アプリケーションがデータを処理する Kinesis データストリーム。
|
シャードからレコードを読み取ります。 |
Amazon Kinesis Data Streams |
|
KCL アプリケーションがデータを処理する Kinesis データストリーム。このアクションは、拡張ファンアウト (EFO) コンシューマーを使用する場合にのみ追加します。
|
拡張ファンアウト (EFO) コンシューマーのシャードをサブスクライブします。 |
Amazon DynamoDB |
|
リーステーブル ( によって作成された DynamoDB のメタデータテーブルKCL。
|
これらのアクションは、DynamoDB で作成されたリーステーブルを管理するKCLために に必要です。 |
Amazon DynamoDB |
|
によって作成されたワーカーメトリクスとコーディネーターの状態テーブル (DynamoDB のメタデータテーブル)KCL。
|
DynamoDB のワーカーメトリクスとコーディネーター状態のメタデータテーブルを管理するKCLには、 の ss アクションが必要です。 |
Amazon DynamoDB |
|
リーステーブルのグローバルセカンダリインデックス。
|
このアクションは、DynamoDB で作成されたリーステーブルのグローバルセカンダリインデックスを読み取るKCLために に必要です。 |
Amazon CloudWatch |
|
* |
アプリケーションのモニタリングに役立つメトリクス 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アプリケーションの名前に置き換えます。