IAM を使用して Amazon Kinesis Data Streams リソースへのアクセスを制御する - Amazon Kinesis Data Streams

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

IAM を使用して Amazon Kinesis Data Streams リソースへのアクセスを制御する

AWS Identity and Access Management(IAM) では以下を実行できます。

  • AWS アカウントにユーザーとグループを作成する

  • お客様の AWS アカウントでユーザーごとに固有のセキュリティ認証情報を割り当てる

  • AWS のリソースを使用してタスクを実行するために各ユーザーのアクセス権限を制御する

  • 別の AWS アカウントのユーザーがお客様の AWS のリソースを共有できるようにする

  • AWS アカウントにロールを作成し、それを行えるユーザーまたはサービスを定義する

  • お客様の企業用の既存のアイデンティティを使用し、AWS のリソースを使用してタスクを実行するようにアクセス権限を与える

IAM と Kinesis Data Streams を使用すると、組織のユーザーが特定の Kinesis Data Streams API アクションを使用してタスクを実行できるかどうか、また、特定のユーザーが使用できるかどうかを制御できます。AWSリソースの使用料金を見積もることができます。

Kinesis クライアントライブラリ (KCL) を使用してアプリケーションを開発する場合、ポリシーに Amazon DynamoDB および Amazon CloudWatch に対するアクセス許可を含める必要があります。KCL は、DynamoDB を使用してアプリケーションの状態情報を追跡し、CloudWatch を使用してユーザーに代わって KCL メトリクスを送信します。KCL の詳細については、「KCL 1.x コンシューマーの開発」を参照してください。

IAM の詳細については、以下を参照してください。

IAM と Amazon DynamoDB の詳細については、「」を参照してください。IAM を使用して Amazon DynamoDB リソースへのアクセスを制御するAmazon DynamoDB 開発者ガイド

IAM と Amazon CloudWatch の詳細については、「」を参照してください。へのユーザーアクセスのコントロールAWSアカウントAmazon CloudWatch ユーザーガイド

ポリシー構文

IAM ポリシーは 1 つ以上のステートメントで構成される JSON ドキュメントです。各ステートメントは次のように構成されます。

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ] }

ステートメントはさまざまなエレメントで構成されます。

  • 効果: -effect[] にすることができます。AllowまたはDeny。デフォルトでは、IAM ユーザーはリソースおよび API アクションを使用するアクセス許可がないため、リクエストはすべて拒否されます。明示的な許可はデフォルトに優先します。明示的な拒否はすべての許可に優先します。

  • アクション: -actionは、アクセス許可を付与または拒否する対象とする、特定の API アクションです。

  • リソース: アクションによって影響を及ぼされるリソースです。ステートメント内でリソースを指定するには、Amazon リソースネーム (ARN) を使用する必要があります。

  • 条件: 条件はオプションです。ポリシーの発効条件を指定するために使用します。

IAM ポリシーを作成および管理するときは、IAM ポリシージェネレータIAM ポリシーシミュレータ

Kinesis Data Streams のアクション

IAM ポリシーステートメントで、IAM をサポートするすべてのサービスから任意の API アクションを指定できます。Kinesis Data Streams の場合、API アクションの名前で次のプレフィックスを使用します。kinesis:。 次に例を示します。kinesis:CreateStream,kinesis:ListStreams, およびkinesis:DescribeStreamSummary

単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。

"Action": ["kinesis:action1", "kinesis:action2"]

ワイルドカードを使用して複数のアクションを指定することもできます。たとえば、「Get」という単語で始まる名前のすべてのアクションは、以下のように指定できます。

"Action": "kinesis:Get*"

すべての Kinesis Data Streams オペレーションを指定するには、次のように * ワイルドカードを使用します。

"Action": "kinesis:*"

Kinesis Data Streams API の全アクションの一覧については、を参照してください。Amazon Kinesis API リファレンス

Kinesis Data Streams の Amazon リソースネーム (ARN)

各 IAM ポリシーステートメントは、ARN を使用して指定したリソースに適用されます。

Kinesis Data Streams には、次の ARN リソース形式を使用します。

arn:aws:kinesis:region:account-id:stream/stream-name

例:

"Resource": arn:aws:kinesis:*:111122223333:stream/my-stream

Kinesis Data Streams のポリシーの例

次のポリシー例は、Kinesis データストリームへのユーザーアクセスの制御方法について説明しています。

例 1:1 ユーザーがストリームからデータを取得できるようにする

このポリシーでは、ユーザーまたはグループが、任意のシステム上の指定したストリームおよび DescribeStreamSummary に対して GetShardIteratorGetRecords、および ListStreams のオペレーションを実行できます。このポリシーは、特定のストリームからデータを取得できる必要があるユーザーに適用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:Get*", "kinesis:DescribeStreamSummary" ], "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/stream1" ] }, { "Effect": "Allow", "Action": [ "kinesis:ListStreams" ], "Resource": [ "*" ] } ] }

例 2: ユーザーがアカウントの任意のストリームにデータを追加できるようにする

このポリシーでは、ユーザーまたはグループが、アカウントのストリームに対して PutRecord オペレーションを使用できます。このポリシーは、アカウントのすべてのストリームにデータレコードを追加できる必要のあるユーザーに適用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord" ], "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/*" ] } ] }

例 3: 特定のストリームに対して Kinesis Data Streams アクションを実行できるようにする

このポリシーでは、ユーザーまたはグループが、指定したストリームに対して Kinesis Data Streams オペレーションを使用できます。このポリシーは、特定のストリームに対して管理上の制御が必要なユーザーに適用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesis:*", "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/stream1" ] } ] }

例 4: 任意のストリームに対して Kinesis Data Streams アクションを実行できるようにする

このポリシーでは、ユーザーまたはグループが、アカウントの任意のストリームに対して任意の Kinesis Data Streams オペレーションを実行できます。このポリシーは、すべてのストリームへのフルアクセスを許可するため、管理者にのみ適用する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesis:*", "Resource": [ "arn:aws:kinesis:*:111122223333:stream/*" ] } ] }