IAM ユーザーとポリシーを作成する - Amazon Kinesis Data Streams

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

IAM ユーザーとポリシーを作成する

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

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

プロデューサー
アクション リソース 目的
DescribeStream, DescribeStreamSummary, DescribeStreamConsumer Kinesis Data Streams レコードを読み取る前に、コンシューマーは、データストリームが存在すること、アクティブであること、シャードを含んでいることを確認します。
SubscribeToShard, RegisterStreamConsumer Kinesis Data Streams コンシューマーをシャードにサブスクライブして登録します。
PutRecord, PutRecords Kinesis Data Streams Kinesis Data Streams にレコードを書き込みます。
コンシューマー
アクション リソース 目的
DescribeStream Kinesis Data Streams レコードを読み取る前に、コンシューマーは、データストリームが存在すること、アクティブであること、シャードを含んでいることを確認します。
GetRecords, GetShardIterator Kinesis Data Streams シャードからレコードを読み取ります。
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Amazon DynamoDB テーブル Kinesis クライアントライブラリ (KCL) (バージョン 1.x または 2.x) を使用してコンシューマーが開発されている場合は、アプリケーションの処理状態を追跡するときに DynamoDB テーブルにアクセスする必要があります。
DeleteItem Amazon DynamoDB テーブル コンシューマーが Kinesis Data Streams シャードで分割と結合のオペレーションを実行する場合。
PutMetricData Amazon CloudWatch Logs また、KCL は、アプリケーションをモニタリングするのに便利なメトリクスも CloudWatch にアップロードします。

このチュートリアルでは、上記のすべての許可を付与する 1 つの IAM ポリシーを作成します。本番環境では、プロデューサー用とコンシューマー用の 2 つのポリシーを作成してもかまいません。

IAM ポリシーを作成するには
  1. 上記の手順で作成した新しいデータストリームの Amazon リソースネーム (ARN) を見つけます。この ARN は、 [ストリーム ARN] として [詳細]タブの上部に表示されます。ARN 形式 は次のとおりです。

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

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

    アカウント

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

    name

    上記のステップで作成したデータストリームの名前 (StockTradeStream)。

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

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

    リージョンとアカウント ID は、このチュートリアルで使用しているデータストリームの ARN の値と同じですが、name は、コンシューマーアプリケーションによって作成および使用される DynamoDB テーブルの名前です。KCL では、アプリケーション名をテーブル名として使用します。このステップでは、DynamoDB テーブル名に StockTradesProcessor を使用します。これは、このチュートリアルの後の手順で使用するアプリケーション名であるためです。

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

  4. [ポリシージェネレーター] の横の [選択] を選択します。

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

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

  7. このチュートリアルで使用するデータストリームの ARN を入力します。

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

    AWS サービス アクション ARN
    Amazon DynamoDB CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem この手順のステップ 2 で作成した DynamoDB テーブルの 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", "kinesis:ListShards", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream" ] }, { "Sid": "Stmt234", "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "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. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

  4. [アクセスの種類] で、[プログラムによるアクセス] を選択し、[次の手順: アクセス許可] を選択します。

  5. [Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。

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

  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] および [ポリシーのアタッチ] を選択します。

次のステップ

コードをダウンロードしてビルドする