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

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

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 應用程式終止

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

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

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

重要

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

以下顯示許可政策範例。

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

此政策具有一個陳述式:

  • 第一個陳述式會使用應用程式的 Amazon Resource Name (kinesisanalytics:CreateApplication) 授予資源上一個動作 (ARN) 的許可。ARN 在此情況下, 會指定萬用字元 (*),以表示授予任何資源的許可。

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

使用主控台所需的許可

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

我們建議下列作法:

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

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

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

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

     

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

     

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

       

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

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

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

客戶受管政策範例

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

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

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

如需示範如何建立角色IAM的範例,以做為應用程式的執行角色,請參閱IAM《 使用者指南》中的建立IAM角色

步驟 1:建立IAM使用者

首先,您需要建立使用者、將使用者新增至具有管理許可的 IAM 群組,然後將管理許可授予您建立的使用者。然後,您可以使用 AWS 特殊 URL和該使用者的登入資料來存取 。

如需說明,請參閱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>" }