メニュー
Amazon Kinesis Data Streams
開発者ガイド

ステップ 2: IAM ポリシーとユーザーの作成

AWS では、セキュリティのベストプラクティスとして、アクセス権限を細分化して、各リソースへのアクセスを制御することが勧められています。AWS Identity and Access Management (IAM) を使用することで、AWS のユーザーとユーザーアクセス許可を管理できます。IAM ポリシーには、許可されているアクションとそのアクションが適用されるリソースが明示的に一覧表示されています。

一般的に、Kinesis Data Streams プロデューサーおよびコンシューマーには、次の最小アクセス権限が必要になります。

プロデューサー

アクション リソース 目的
DescribeStream Kinesis data stream レコードを書き込む前に、プロデューサーは、ストリームが存在し、アクティブであることを確認する必要があります。
PutRecordPutRecords Kinesis data stream レコードを Kinesis Data Streams に書き込みます。

コンシューマー

アクション リソース 目的
DescribeStream Kinesis data stream レコードを読み取る前に、コンシューマーは、ストリームが存在し、アクティブであることを確認し、ストリームにシャードが含まれることを確認します。
GetRecordsGetShardIterator Kinesis data stream Kinesis Data Streams シャードからレコードを読み込みます。
CreateTableDescribeTableGetItemPutItemScanUpdateItem Amazon DynamoDB テーブル Kinesis クライアントライブラリ(KCL)を使用してコンシューマーが開発されている場合は、アプリケーションの処理状態を追跡するときに DynamoDB テーブルにアクセスする必要があります。テーブルは、最初に開始したコンシューマーによって作成されます。
DeleteItem Amazon DynamoDB テーブル コンシューマーが Kinesis Data Streams シャードで分割と結合のオペレーションを実行する場合。
PutMetricData Amazon CloudWatch ログ KCL は、アプリケーションをモニタリングするのに便利なメトリクスを CloudWatch にアップロードします。

このアプリケーションでは、前述のすべてのアクセス許可を付与する IAM ポリシーを作成します。実際には、プロデューサーとコンシューマーに 1 つずつ、2 つのポリシーを作成することになるかもしれません。

IAM ポリシーを作成するには

  1. 新しいストリームの Amazon リソースネーム(ARN)を見つけます。この ARN は、 [ストリーム ARN] として [詳細]タブの上部に一覧表示されます。ARN 形式 は次のとおりです。

    arn:aws:kinesis:region:account:stream/name
    リージョン

    リージョンコード (us-west-2 など)。詳細については、「リージョンとアベイラビリティーゾーンの概念」を参照してください。

    アカウント

    AWS アカウント ID(「アカウント設定」を参照してください)。

    name

    ステップ 1: データストリームの作成 からのストリームの名前(StockTradeStream)。

  2. コンシューマーによって使用される(最初のコンシューマーインスタンスによって作成された)DynamoDB テーブルの ARN を確認します。次のような形式になります。

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

    リージョンとアカウントは前の手順と同じ場所のものですが、この場合の名前はコンシューマーアプリケーションによって作成および使用されるテーブルの名前となります。コンシューマーによって使用される KCL では、アプリケーション名がテーブル名として使用されます。後で使用されるアプリケーション名である StockTradesProcessor を使用します。

  3. IAM コンソールで、[ポリシー] (https://console.aws.amazon.com/iam/home#policies) から [ポリシーの作成] を選択します。IAM ポリシーを初めて扱う場合には、[今すぐ始める]、[ポリシーの作成] を選択します。

  4. [Policy Generator] の横の [Select] を選択します。

  5. AWS のサービスとして [Amazon Kinesis] を選択します。

  6. 許可されるアクションとして、DescribeStreamGetShardIteratorGetRecordsPutRecord、および PutRecords を選択します。

  7. ステップ 1 で作成した ARN を入力します。

  8. 以下の各項目について、[Add Statement] を使用します。

    AWS サービス アクション ARN
    Amazon DynamoDB CreateTableDeleteItemDescribeTableGetItemPutItem, ScanUpdateItem ステップ 2 で作成した ARN
    Amazon CloudWatch PutMetricData *

    ARN を指定するときに使用されるアスタリスク (*) は必要ありません。CloudWatch に PutMetricData アクションが呼び出される特定のリソースが存在しない場合などがこれに該当します。

  9. [Next Step] を選択します。

  10. [Policy Name] を StockTradeStreamPolicy に変更し、コードを確認して、[Create Policy] を選択します。

取得されたポリシードキュメントには、次のような結果が表示されます

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt123", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:GetShardIterator", "kinesis:GetRecords" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream" ] }, { "Sid": "Stmt456", "Effect": "Allow", "Action": [ "dynamodb:*" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123:table/StockTradesProcessor" ] }, { "Sid": "Stmt789", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": [ "*" ] } ] }

IAM ユーザーを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. [ユーザー] ページで、[ユーザーを追加] を選択します。

  3. [User name] に、StockTradeStreamUser と入力します。

  4. [アクセスの種類] で、[Programmatic access] を選択し、[Next: Permissions] を選択します。

  5. [Attach existing policies directly] を選択します。

  6. 作成したポリシーの名前で検索します。ポリシー名の左にあるボックスを選択し、[Next: Review] を選択します。

  7. 詳細と概要を確認し、[ユーザーの作成] を選択します。

  8. [アクセスキー ID をコピーし、プライベート用に保存します。[シークレットアクセスキー] で [表示] を選択し、このキーもプライベートに保存します。

  9. アクセスキーとシークレットキーを自分しかアクセスできない安全な場所にあるローカルファイルに貼り付けます。このアプリケーションでは、アクセス権限を厳しく制限した ~/.aws/credentials という名前のファイルを作成します。ファイル形式は次のようになります。

    [default] aws_access_key_id=access key aws_secret_access_key=secret access key

IAM ポリシーをユーザーにアタッチするには

  1. IAM コンソールで、「Policies」を開いて、[Policy Actions] を選択します。

  2. StockTradeStreamPolicy および [Attach] を選択します。

  3. StockTradeStreamUser および [Attach Policy] を選択します。

次のステップ

ステップ 3: 実装コードのダウンロードおよびビルド

このページの内容: