本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将基于身份的策略 (IAM 策略) 用于 Amazon Kinesis Data Analytics
下面提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对 Amazon Kinesis Data Analytics 资源执行操作的权限。
我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 Amazon Kinesis Data Analytics 资源访问的基本概念和选项。有关更多信息,请参阅 管理 Amazon Kinesis Data Analytics 资源的访问权限概述。
主题
下面介绍权限策略示例。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] } ] }
该策略包含一个语句:
-
第一条语句授予对一个 Kinesis Data Analytics 操作的权限 (
kinesisanalytics:CreateApplication
) 在资源上使用应用程序的 Amazon 资源名称 (ARN)。此示例中的 ARN 指定通配符 (*),表示为任何资源授予相应权限。
有关显示所有 Kinesis Data Analytics API 操作及其适用于的资源的表,请参阅。Amazon Kinesis Data Analytics API 权限:操作、权限和资源参考.
使用 Amazon Kinesis Data Analytics 控制台所需的权限
为使用 Kinesis Data Analytics 控制台的用户,您必须授予所需的权限。例如,如果希望用户拥有相应权限以创建应用程序,请授予显示账户中的流式传输源的权限,以便用户可以在控制台中配置输入和输出。
我们建议执行下列操作:
-
使用 Amazon 托管策略授予用户权限。有关可用的策略,请参阅Amazon Kinesis Data Analytics 的 Amazon Kinesis Data Analytics 策略。
-
创建自定义策略。在本示例中,我们建议您查看此部分中提供的示例。有关更多信息,请参阅 客户托管策略示例。
Amazon Kinesis Data Analytics 的 Amazon Kinesis Data Analytics 策略
Amazon通过提供由创建和管理的独立 IAM 策略来满足许多常用案例的要求。Amazon这些亚马逊托管策略可针对常用案例授予必要的权限,使您免去调查所需权限的工作。有关更多信息,请参阅 。亚马逊管理的政策中的IAM 用户指南.
以下亚马逊托管策略(可附加到您账户中的用户)特定于 Amazon Kinesis Data Analytics:
-
AmazonKinesisAnalyticsReadOnly
— 授予 Amazon Kinesis 数据分析操作的权限,使用户能够列出 Amazon Kinesis Data Analytics 应用程序并查看输入/输出配置。它还会授予权限以允许用户查看 Kinesis 流和 Kinesis Data Firehose 传输流列表。应用程序运行时,用户可以在控制台中查看源数据和实时分析结果。 -
AmazonKinesisAnalyticsFullAccess
— 授予所有 Amazon Kinesis 数据 Analytics 操作的权限,并授予所有其他权限以允许用户创建和管理 Amazon Kinesis Data Analytics 应用程序。但是,请注意以下事项:-
如果用户要在控制台中创建一个新的 IAM 角色,这些权限并不能满足需求(这些权限允许用户选择现有角色)。如果您希望用户能够在控制台中创建 IAM 角色,请在
IAMFullAccess
Amazon 托管策略。 -
用户必须具有访问
iam:PassRole
在配置 Amazon Kinesis Data Analytics 应用程序时指定 IAM 角色的操作。此亚马逊管理的政策授予对iam:PassRole
仅对以前缀开头的 IAM 角色向用户执行操作service-role/kinesis-analytics
.如果用户要为 Amazon Kinesis Data Analytics 应用程序配置的角色没有该前缀,您必须先在
iam:PassRole
对特定角色采取行动。
-
您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些权限策略。
此外,您还可以创建自定义 IAM 策略,以授予 Amazon Kinesis Data Analytics 操作和资源的相关权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。
客户托管策略示例
此部分中的示例提供了一组可附加到用户的示例策略。如果您是首次创建策略,建议您先在账户中创建 IAM 用户。然后,按顺序将策略附加到用户,如此部分中的步骤所述。然后,在将每个策略附加到用户时,可使用控制台验证该策略的效果。
最初,用户没有权限并且无法在控制台中执行任何操作。在将策略附加到用户时,可以验证用户是否能在控制台中执行各种操作。
建议使用两种浏览器窗口。在一个窗口中,创建用户和授予权限。在另一个窗口中,使用用户的凭证登录 Amazon Web Services Management Console,并在授予权限时验证权限。
有关说明如何创建可用作 Amazon Kinesis Data Analytics 应用程序执行角色的 IAM 角色的示例,请参阅。创建 IAM 角色中的IAM 用户指南.
示例步骤
第 1 步:创建 IAM 用户
首先,您需要创建一个 IAM 用户,将该用户添加到具有管理权限的 IAM 组,然后向您创建的 IAM 用户授予管理权限。您随后便可以使用一个特殊的 URL 和该 IAM 用户的凭证访问 Amazon。
有关说明,请参阅创建您的第一个 IAM 用户和管理员组中的IAM 用户指南.
第 2 步:为用户授予非特定于 Amazon Kinesis Data Analytics 的操作的权限。
首先,为用户授予非特定于 Amazon Kinesis Data Analytics 的所有操作的权限,这些权限用户在使用 Amazon Kinesis Data Analytics 应用程序时需要这些权限。这些权限包括使用流的权限(Amazon Kinesis Data Streams 操作、Amazon Kinesis 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/*" } ] }
使用 IAM 用户凭证登录 Amazon Kinesis Data Analytics 控制台,以便验证这些权限。
第 4 步:允许用户启动特定应用程序
如果您希望用户能够启动某个现有 Amazon Kinesis Data Analytics 应用程序,请将以下策略附加到用户。该策略提供 kinesisanalytics:StartApplication
操作的权限:您必须提供您的账户 ID 和应用程序名称以更新策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication" ], "Resource": "arn:aws:kinesisanalytics:
aws-region
:aws-account-id
:application/application-name
" } ] }
第 5 步:允许用户创建 Amazon Kinesis Data Analytics 应用程序
如果您希望用户创建 Amazon Kinesis Data Analytics 应用程序,您可以将以下策略附加到用户。您必须更新策略,并提供一个、账户 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 预处理,请将以下策略附加到角色。有关 Lambda 预处理的更多信息,请参阅使用 Lambda 函数预处理数据.
{ "Sid": "UseLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "<FunctionARN>" }