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