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. [ポリシージェネレーター] の横の [選択] を選択します。

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

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

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

  8. 以下の各項目について、[ステートメントを追加] を使用します。

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

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

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

  10. [ポリシー名] を StockTradeStreamPolicy に変更し、コードを確認して、[ポリシーの作成] を選択します。

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

{ "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. [アクセスの種類] で、[プログラムによるアクセス] を選択し、[次の手順: アクセス許可] を選択します。

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

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

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

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

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

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

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

  1. IAM コンソールで、[ポリシー] を開いて [ポリシーアクション] を選択します。

  2. [StockTradeStreamPolicy] および [アタッチ] を選択します。

  3. [StockTradeStreamUser] および [ポリシーのアタッチ] を選択します。

次のステップ

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

このページの内容: