翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ポリシーを作成するには
-
上記の手順で作成した新しいデータストリームの Amazon リソースネーム (ARN) を見つけます。この ARN は、 [ストリーム ARN] として [詳細]タブの上部に表示されます。ARN 形式 は次のとおりです。
arn:aws:kinesis:
region
:account
:stream/name
- region
-
AWS リージョンコード (
us-west-2
など)。詳細については、リージョンとアベイラビリティーゾーンの概念を参照してください。 - アカウント
-
AWS アカウント ID ( アカウント設定を参照してください)。
- name
-
上記のステップで作成したデータストリームの名前 (
StockTradeStream
)。
-
コンシューマーによって使用される (および最初のコンシューマーインスタンスによって作成される) DynamoDB テーブルの ARN を決定します。次のような形式になります。
arn:aws:dynamodb:
region
:account
:table/name
リージョンとアカウント ID は、このチュートリアルで使用しているデータストリームの ARN の値と同じですが、name は、コンシューマーアプリケーションによって作成および使用される DynamoDB テーブルの名前です。KCL では、アプリケーション名をテーブル名として使用します。このステップでは、DynamoDB テーブル名に
StockTradesProcessor
を使用します。これは、このチュートリアルの後の手順で使用するアプリケーション名であるためです。 -
IAM コンソールのポリシー (https://console.aws.amazon.com/iam/home#policies
) で、[ポリシーの作成] を選択します。IAM ポリシーを初めて扱う場合には、[今すぐ始める]、[ポリシーの作成] を選択します。 -
[ポリシージェネレーター] の横の [選択] を選択します。
-
AWS のサービスとして [Amazon Kinesis]を選択します。
-
許可されるアクションとして、
DescribeStream
、GetShardIterator
、GetRecords
、PutRecord
、およびPutRecords
を選択します。 -
このチュートリアルで使用するデータストリームの ARN を入力します。
-
以下の各項目について、[ステートメントを追加] を使用します。
AWS サービス アクション ARN Amazon DynamoDB CreateTable
,DeleteItem
,DescribeTable
,GetItem
,PutItem
,Scan
,UpdateItem
この手順のステップ 2 で作成した DynamoDB テーブルの ARN。 Amazon CloudWatch PutMetricData
*
ARN を指定するときに使用されるアスタリスク (
*
) は必要ありません。PutMetricData
アクションが呼び出される特定のリソースが CloudWatch に存在しない場合などがこれに該当します。 -
[Next Step (次のステップ)] をクリックします。
-
[ポリシー名] を
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 ユーザーを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
[Users] (ユーザー) ページで、[Add user] (ユーザーを追加) を選択します。
-
[User name] に、
StockTradeStreamUser
と入力します。 -
[アクセスの種類] で、[プログラムによるアクセス] を選択し、[次の手順: アクセス許可] を選択します。
-
[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。
-
上記の手順で作成したポリシーを名前 (
StockTradeStreamPolicy
) で検索します。ポリシー名の左にあるボックスを選択し、[次の手順: 確認] を選択します。 -
詳細と概要を確認し、[ユーザーの作成] を選択します。
-
[アクセスキー ID] をコピーし、プライベート用に保存します。[シークレットアクセスキー] で [表示] を選択し、このキーもプライベートに保存します。
-
アクセスキーとシークレットキーを自分しかアクセスできない安全な場所にあるローカルファイルに貼り付けます。このアプリケーションでは、アクセス権限を厳しく制限した
~/.aws/credentials
という名前のファイルを作成します。ファイル形式は次のようになります。[default] aws_access_key_id=
access key
aws_secret_access_key=secret access key
IAM ポリシーをユーザーにアタッチするには
-
IAM コンソールで、[ポリシー
] を開いて [ポリシーアクション] を選択します。 -
[
StockTradeStreamPolicy
] および [アタッチ] を選択します。 -
[
StockTradeStreamUser
] および [ポリシーのアタッチ] を選択します。