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 Kinesis Data Stream シャードにサブスクライブし、コンシューマーを登録します。
PutRecord, PutRecords Kinesis Data Streams Amazon Kinesis ストリームにレコードを書き込みます。
コンシューマー
アクション リソース 目的
DescribeStream Kinesis Data Streams レコードを読み取る前に、コンシューマーは、ストリームが存在し、アクティブであることを確認し、ストリームにシャードが含まれることを確認します。
GetRecords, GetShardIterator Kinesis Data Streams Kinesis Data Streams シャードからレコードを読み込みます。
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Amazon DynamoDB テーブル Kinesis クライアントライブラリ (KCL) を使用してコンシューマーが開発されている場合は、アプリケーションの処理状態を追跡するときに DynamoDB テーブルへの許可が必要です。テーブルは、最初に開始したコンシューマーによって作成されます。
DeleteItem Amazon DynamoDB テーブル コンシューマーが Kinesis Data Streams シャードで分割と結合のオペレーションを実行する場合。
PutMetricData Amazon CloudWatch Logs また、KCL は、アプリケーションをモニタリングするのに便利なメトリクスも CloudWatch にアップロードします。

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

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

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

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

    アカウント

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

    name

    データストリームを作成する からのストリームの名前 (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 CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem ステップ 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", "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. 作成したポリシーの名前で検索します。ポリシー名の左にあるボックスを選択し、[次の手順: 確認] を選択します。

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

次のステップ

実装コードをダウンロードおよびビルドする