針對 使用以身分為基礎的政策 (IAM 政策) - 適用於 SQL 應用程式的 Amazon Kinesis Data Analytics 開發人員指南

經過仔細考量,我們決定在兩個步驟中停止 Amazon Kinesis Data Analytics for SQL 應用程式:

1. 從 2025 年 10 月 15 日起,您將無法建立新的 Kinesis Data Analytics for SQL 應用程式。

2. 我們將自 2026 年 1 月 27 日起刪除您的應用程式。您將無法啟動或操作 Amazon Kinesis Data Analytics for SQL 應用程式。從那時起,Amazon Kinesis Data Analytics for SQL 將不再提供支援。如需詳細資訊,請參閱Amazon Kinesis Data Analytics for SQL 應用程式終止

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

針對 使用以身分為基礎的政策 (IAM 政策)

以下是以身分為基礎的政策範例,此範例會示範帳戶管理員如何將許可政策附加至 IAM 身分 (即使用者、群組和角色),並藉此授予許可,以對資源執行操作。

重要

建議您先檢閱介紹主題,理解可用來管理 資源存取的基本槪念和選項。如需詳細資訊,請參閱管理您的 資源之存取許可的概觀

以下顯示許可政策範例。

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

此政策具有一個陳述式:

  • 第一個陳述式透過使用應用程式的 Amazon Resource Name (ARN),來授與資源上的一個動作 (kinesisanalytics:CreateApplication) 許可。在這個案例中,ARN 指定萬用字元 (*) 來表示為任何資源授予許可。

如需顯示所有 API 操作與其適用資源的資料表,請參閱 API 許可:動作、許可與資源參考

使用主控台所需的許可

如要讓使用者在主控台上作業,您必須授予必要的許可。舉例來說,如果您希望使用者擁有建立應用程式的許可,請授與許可向他們展示帳戶中的串流來源,以便使用者可以在主控台上設定輸入和輸出。

我們建議下列作法:

之 Amazon 受管 (預先定義) 政策

AWS 提供由 建立和管理的獨立 IAM 政策,以解決許多常見的使用案例 AWS。這些 Amazon 受管政策會授予常用案例所需的許可,讓您不需調查需要哪些許可。如需詳細資訊,請參閱《IAM 使用者指南》中的 Amazon 受管政策

您可將下列 Amazon 受管政策附加到帳戶中的使用者,這些政策專屬於:

  • AmazonKinesisAnalyticsReadOnly:授與許可給可讓使用者列出應用程式和檢閱輸入/輸出組態的動作。它還授予許可,允許使用者檢視 Kinesis 串流和 Firehose 交付串流的清單。應用程式正在執行時,使用者可以在主控台中檢視來源資料和即時分析結果。

     

  • AmazonKinesisAnalyticsFullAccess:授與許可給所有可讓使用者建立和管理應用程式的動作和其他許可。但是,請注意以下內容:

     

    • 這些許可不足以讓使用者想要在主控台中建立新的 IAM 角色 (僅能允許使用者選取現有角色)。如果您希望讓使用者在主控台中建立 IAM 角色,請新增 IAMFullAccess Amazon 受管政策。

       

    • 設定應用程式時,使用者必須具有iam:PassRole 動作的許可,才能指定 IAM 角色。此 Amazon 受管政策只會針對字首為 service-role/kinesis-analytics 的 IAM 角色授予使用者 iam:PassRole 動作許可。

      如果使用者想用沒有此字首的角色來設定應用程式,您必須先明確授與使用者對該角色之 iam:PassRole 動作許可。

您也可以建立自訂 IAM 政策,以允許動作與資源的許可。您可以將這些自訂政策連接至需要這些許可的使用者或群組。

客戶受管政策範例

本節的範例提供一組範本政策可供您連接到使用者。如果您在建立政策方面是新手,我們建議您先在自己的帳戶中建立使用者。然後依序將策略附加到使用者,如本節所述步驟。當您將政策連接到使用者時,即可使用主控台來驗證每個政策的效果。

起初,使用者沒有許可且無法在主控台進行任何操作。隨著您將政策連接到使用者,便可以驗證使用者在主控台上能夠執行各種動作。 

我們建議您使用兩個瀏覽器視窗。在一個視窗中,建立使用者並授予許可。在另一個 中, AWS Management Console 使用使用者的登入資料登入 ,並在您授予許可時驗證許可。

如需相關範例,以了解如何建立可擔任應用程式之執行角色的 IAM 角色,請參閱《IAM 使用者指南》中的建立 IAM 角色

步驟 1:建立 IAM 使用者

首先,您需要建立 IAM 使用者,並將使用者新增至擁有管理許可的 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>" }