でのアイデンティティベースのポリシー (IAM ポリシー) の使用 - Amazon Kinesis Data Analytics for SQL Applications デベロッパーガイド

慎重に検討した結果、2 つのステップでSQLアプリケーションの Amazon Kinesis Data Analytics を中止することにしました。

1. 2025 年 10 月 15 日以降、SQLアプリケーション用の新しい Kinesis Data Analytics を作成することはできません。

2. 2026 年 1 月 27 日以降、アプリケーションは削除されます。SQL アプリケーションの Amazon Kinesis Data Analytics を起動または操作することはできません。SQL それ以降、Amazon Kinesis Data Analytics のサポートは利用できなくなります。詳細については、「Amazon Kinesis Data Analytics for SQL Applications の停止」を参照してください。

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

でのアイデンティティベースのポリシー (IAM ポリシー) の使用

以下は、アカウント管理者が ID (ユーザー、グループ、ロール) IAM にアクセス許可ポリシーをアタッチし、 リソースでオペレーションを実行するアクセス許可を付与する方法を示すアイデンティティベースのポリシーの例です。

重要

初めに、リソースへのアクセスを管理するための基本概念と、使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「 リソースへのアクセス許可の管理の概要」を参照してください。

以下に示しているのは、アクセス権限ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] } ] }

このポリシーには以下の 1 つのステートメントがあります。

  • 最初のステートメントは、アプリケーションの Amazon リソースネーム (kinesisanalytics:CreateApplication) を使用して、リソースに対する 1 つのアクション (ARN) のアクセス許可を付与します。この場合ARN、 はワイルドカード文字 (*) を指定して、リソースにアクセス許可が付与されていることを示します。

すべてのAPIオペレーションとそれらが適用されるリソースを示す表については、「」を参照してください API アクセス許可: アクション、アクセス許可、リソースリファレンス

コンソールを使用するために必要なアクセス権限

ユーザーが コンソールで作業するには、必要なアクセス権限を付与する必要があります。たとえば、ユーザーにアプリケーションを作成するアクセス権限を付与する場合、ユーザーのアカウントでストリーミングソースを表示できるアクセス権限を付与し、ユーザーがコンソールで入出力を設定できるようにする必要があります。

次の構成を推奨します。

  • Amazon 管理ポリシーを使用してユーザーにアクセス権限を付与します。使用できるポリシーについては、「 の Amazon 管理 (事前定義) ポリシー 」を参照してください。

  • カスタムポリシーを作成します。このケースでは、このセクションで提供されている例を確認することをお勧めします。詳細については、「お客様が管理するポリシーの例」を参照してください。

の Amazon 管理 (事前定義) ポリシー

AWS は、 によって作成および管理されるスタンドアロンIAMポリシーを提供することで、多くの一般的なユースケースに対処します AWS。これらの Amazon 管理ポリシーは、一般的なユースケースに必要な許可を付与することで、どの許可が必要なのかを調査する必要がなくなります。詳細については、「 IAMユーザーガイド」の「Amazon 管理ポリシー」を参照してください。

アカウントのユーザーにアタッチできる次の Amazon 管理ポリシーは、 に固有のものです。

  • AmazonKinesisAnalyticsReadOnly – ユーザーがアプリケーションをリストし、入出力設定を確認できるアクションのアクセス権限を付与します。また、ユーザーが Kinesis ストリームと Firehose 配信ストリームのリストを表示するためのアクセス権限も付与します。アプリケーションが実行されているときは、ユーザーはコンソールでソースデータとリアルタイム分析の結果を表示できます。

     

  • AmazonKinesisAnalyticsFullAccess – すべてのアクションのアクセス権限およびユーザーがアプリケーションを作成、管理できる他のすべてのアクセス権限を付与します。ただし、以下の点に注意してください。

     

    • ユーザーがコンソールで新しいIAMロールを作成する場合、これらのアクセス許可では不十分です (これらのアクセス許可により、ユーザーは既存のロールを選択できます)。ユーザーがコンソールで IAMロールを作成できるようにするには、IAMFullAccessAmazon 管理ポリシーを追加します。

       

    • ユーザーは、アプリケーションを設定するときに IAMロールを指定する iam:PassRoleアクションのアクセス許可を持っている必要があります。この Amazon 管理ポリシーは、プレフィックス で始まるIAMロールに対してのみ、 iam:PassRoleアクションのアクセス許可をユーザーに付与しますservice-role/kinesis-analytics

      ユーザーが、このプレフィックスがついていないロールを使用して iam:PassRole アプリケーションを設定する場合、その特定のロールで明示的にユーザーにアクションのアクセス権限を付与する必要があります。

独自のカスタムIAMポリシーを作成して、アクションとリソースのアクセス許可を許可することもできます。こうしたカスタムポリシーは、該当するアクセス許可が必要なユーザーまたはグループにアタッチできます。

お客様が管理するポリシーの例

このセクションの例では、ユーザーにアタッチできるサンプルポリシーのグループが用意されています。ポリシーの作成が初めての場合は、お客様のアカウントにユーザーを作成することをお勧めします。次に、このセクションのステップで説明している順番でポリシーをそのユーザーにアタッチします。その後、コンソールを使用して、ユーザーにポリシーをアタッチしながら各ポリシーの効果を確認できます。

最初は、ユーザーにアクセス権限が付与されていないため、コンソールを使用してできることは何もありません。ユーザーにポリシーをアタッチすることで、ユーザーがコンソールで多様なアクションを実行できることを確認できます。 

2 つのブラウザウィンドウを使用することをお勧めします。1 つのウィンドウでユーザーを作成し、アクセス権限を付与します。もう 1 つでは、ユーザーの認証情報 AWS Management Console を使用して にサインインし、アクセス許可を付与するときに確認します。

アプリケーションの実行IAMロールとして使用できる ロールを作成する方法の例については、「 IAMユーザーガイド」のIAM「ロールの作成」を参照してください。

ステップ 1: IAM ユーザーを作成する

まず、ユーザーを作成し、管理アクセス許可を持つ IAMグループにユーザーを追加し、作成したユーザーに管理アクセス許可を付与する必要があります。その後、特別な URLとそのユーザーの認証情報 AWS を使用して にアクセスできます。

手順については、「 IAMユーザーガイド」の「最初のIAMユーザーおよび管理者グループの作成」を参照してください。

ステップ 2:に固有ではないアクションのユーザーアクセス権限を許可する

まず、 に固有ではないすべてのアクションのアクセス権限をユーザーに付与します。これはユーザーがアプリケーションを使用するときに必要となります。これには、ストリームを操作するためのアクセス許可 (Amazon Kinesis Data Streams アクション、Amazon Data Firehose アクション)、および CloudWatch アクションのアクセス許可が含まれます。次のポリシーをユーザーにアタッチします。

アクセスiam:PassRole許可を付与する IAMロール名を指定するか、すべてのIAMロールを示すワイルドカード文字 (*) を指定して、ポリシーを更新する必要があります。これは安全な方法ではありませんが、このテスト中に特定のIAMロールが作成されていない可能性があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" }, { "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListPolicyVersions", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/service-role/role-name" } ] }

ステップ 3: ユーザーにアプリケーション一覧の表示と詳細の表示を許可する

次のポリシーでは、ユーザーに以下のアクセス権限を付与します。

  • ユーザーがアプリケーションの一覧を表示できる kinesisanalytics:ListApplications アクションのアクセス権限。これはサービスレベルのAPI呼び出しであるため、Resource値として「*」を指定します。

  • 任意のアプリケーションの情報を取得できる kinesisanalytics:DescribeApplication アクションのアクセス権限。

このポリシーをユーザーに追加します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:ListApplications" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesisanalytics:DescribeApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/*" } ] }

ユーザー認証情報を使用してコンソールにサインインし、これらのアクセス権限を検証します。

ステップ 4: ユーザーに特定のアプリケーションの起動を許可する

ユーザーに既存の アプリケーションのどれかを実行できるようにする場合、次のポリシーをユーザーにアタッチします。このポリシーでは、kinesisanalytics:StartApplication アクションを実行するためのアクセス権限を付与します。アカウント ID、 AWS リージョン、アプリケーション名を指定してポリシーを更新する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

ステップ 5: ユーザーにアプリケーションの作成を許可する

ユーザーがアプリケーションを作成できるようにする場合、次のポリシーをユーザーにアタッチできます。ポリシーを更新し、 AWS リージョン、アカウント ID、およびユーザーが作成する特定のアプリケーション名、またはユーザーが任意のアプリケーション名を指定 (したがって複数のアプリケーションを作成) できるように「*」を指定する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication", "kinesisanalytics:UpdateApplication", "kinesisanalytics:AddApplicationInput", "kinesisanalytics:AddApplicationOutput" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

ステップ 6: アプリケーションが Lambda 事前処理を使用できるようにする

アプリケーションで Lambda の事前処理を使用できるようにする場合、次のポリシーをロールアにアタッチします。

{ "Sid": "UseLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "<FunctionARN>" }