翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
KCL コンシューマーアプリケーションに必要な IAM アクセス許可
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 |
|
リーステーブル (KCL によって作成された DynamoDB のメタデータテーブル。
|
これらのアクションは、KCL が DynamoDB で作成されたリーステーブルを管理するために必要です。 |
Amazon DynamoDB |
|
KCL によって作成されたワーカーメトリクスとコーディネーター状態テーブル (DynamoDB のメタデータテーブル)。
|
これらのアクションは、KCL が DynamoDB でワーカーメトリクスとコーディネーター状態メタデータテーブルを管理するために必要です。 |
Amazon DynamoDB |
|
リーステーブルのグローバルセカンダリインデックス。
|
このアクションは、KCL が DynamoDB で作成されたリーステーブルのグローバルセカンダリインデックスを読み取るために必要です。 |
Amazon CloudWatch |
|
* |
アプリケーションをモニタリングするのに役立つメトリクスを 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 アプリケーションの名前に置き換えます。