Uso de políticas basadas en identidad (políticas de IAM) para - Guía para desarrolladores de aplicaciones de Amazon Kinesis Data Analytics para SQL

Para proyectos nuevos, le recomendamos que utilice el nuevo servicio gestionado para Apache Flink Studio en lugar de aplicaciones de Kinesis Data Analytics para SQL. El servicio gestionado para Apache Flink Studio combina la facilidad de uso con capacidades analíticas avanzadas, lo que le permite crear aplicaciones sofisticadas de procesamiento de flujos en cuestión de minutos.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de políticas basadas en identidad (políticas de IAM) para

Los siguientes ejemplos de políticas basadas en identidad muestran cómo un administrador de la cuenta puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y roles) y, por lo tanto, conceder permisos para realizar operaciones en recursos.

importante

Le recomendamos que consulte primero los temas de introducción en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a sus recursos de . Para obtener más información, consulte Información general sobre la administración de los permisos de acceso a los recursos de .

A continuación se muestra un ejemplo de una política de permisos.

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

La política tiene una declaración:

  • La primera declaración concede permisos para una acción (kinesisanalytics:CreateApplication) en un recurso que utiliza el nombre de recurso de Amazon (ARN) para la aplicación. El ARN en este caso especifica un comodín (*) para indicar que el permiso se concede para cualquier recurso.

Para ver una tabla con todas las operaciones de la API y los recursos a los que se aplican, consulte Permisos de la API: referencia de acciones, permisos y recursos.

Permisos necesarios para usar la consola de

En el caso de un usuario que trabaja con la consola de , debe conceder los permisos necesarios. Por ejemplo, si desea conceder que un usuario tenga permisos para crear una aplicación, conceda permisos que le mostrarán los orígenes de streaming en la cuenta para que este pueda configurar la entrada y la salida de la consola.

Le recomendamos lo siguiente:

Políticas administradas (predefinidas) por Amazon para

AWS aborda muchos casos de uso comunes al proporcionar políticas de IAM independientes que son creadas y administradas por. AWS Estas políticas administradas por Amazon conceden los permisos necesarios para casos de uso comunes, lo que le evita tener que investigar los permisos necesarios. Para más información, consulte Políticas administradas de Amazon en la Guía del usuario de IAM.

Las siguientes políticas administradas por Amazon, que se pueden adjuntar a los usuarios de la cuenta, son específicas de:

  • AmazonKinesisAnalyticsReadOnly: concede permisos para acciones de que permiten a un usuario enumerar las aplicaciones y revisar la configuración de entrada/salida. También concede permisos que permiten al usuario ver una lista de las transmisiones de Kinesis y las transmisiones de entrega de Firehose. Dado que aplicación está en ejecución, el usuario puede ver los datos de origen y los resultados de análisis en tiempo real en la consola.

     

  • AmazonKinesisAnalyticsFullAccess: otorga permisos para todas las acciones y todos los demás permisos que permiten a un usuario crear y administrar aplicaciones. Sin embargo, tenga en cuenta lo siguiente:

     

    • Estos permisos no son suficientes si el usuario quiere crear un rol de IAM en la consola (con estos permisos el usuario puede seleccionar un rol existente). Si desea que el usuario pueda crear un rol de IAM en la consola, añada la política administrada de Amazon IAMFullAccess.

       

    • Un usuario debe tener permiso para que acción iam:PassRole pueda especificar un rol de IAM al configurar la aplicación. Esta política administrada de Amazon concede al usuario permiso para la acción iam:PassRole solo en los roles de IAM que empiecen con el prefijo service-role/kinesis-analytics.

      Si el usuario quiere configurar la aplicación con un rol que no tenga este prefijo, en primer lugar deberá conceder permisos de forma explícita al usuario para la acción iam:PassRole del rol específico.

También puede crear sus propias políticas de IAM personalizadas para conceder permisos a las acciones y recursos de . Puede asociar estas políticas personalizadas a los usuarios o grupos de que requieran esos permisos.

Ejemplos de políticas administradas por el cliente

Los ejemplos que aparecen en esta sección muestran un grupo de políticas de ejemplo que puede asociar a un usuario. Si es la primera vez que crea una política, le recomendamos que cree primer lugar un usuario en su cuenta. A continuación, asocie las políticas al usuario por orden, según se detalla en los pasos de esta sección. Luego, podrá utilizar la consola para comprobar los efectos de cada política a medida que la asigna al usuario.

En un primer momento como el usuario no tiene permisos no puede hacer nada en la consola. Al asociar políticas al usuario, podrá verificar que este pueda realizar diversas acciones en la consola. 

Le recomendamos que utilice dos ventanas de navegador. En una ventana, cree el usuario y conceda permisos. En la otra, inicie sesión AWS Management Console con las credenciales del usuario y compruebe los permisos a medida que los concede.

Para ver ejemplos que ilustran cómo crear un rol de IAM que puede utilizar como rol de ejecución en la aplicación, consulte Creación de roles de IAM en la Guía del usuario de IAM.

Paso 1: Crear un usuario de IAM

En primer lugar, cree un usuario de IAM, añádalo a un grupo de IAM con permisos administrativos y, a continuación, conceda permisos administrativos al usuario que ha creado. A continuación, podrás acceder AWS mediante una URL especial y las credenciales de ese usuario.

Para obtener instrucciones, consulte Creación de su primer grupo de administradores y usuarios de IAM en la Guía del usuario de IAM.

Paso 2: conceder permisos al usuario para acciones que no son específicas de

En primer lugar, conceda permiso a un usuario para todas las acciones que no son específicas de y que el usuario necesitará para trabajar con aplicaciones de . Estos incluyen permisos para trabajar con transmisiones (acciones de Amazon Kinesis Data Streams, acciones de Amazon Data Firehose) y permisos para acciones. CloudWatch Asigne la siguiente política al usuario.

Es necesario actualizar la política proporcionando un nombre de rol de IAM para el que desea conceder el permiso iam:PassRole o especificar un carácter comodín (*) para indicar todos los roles de IAM. Esto no es una práctica segura, pero no puede crear un rol de IAM específico durante esta prueba.

{ "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" } ] }

Paso 3: Permitir que el usuario vea una lista de aplicaciones y los detalles

La siguiente política concede a un usuario los siguientes permisos:

  • Permiso de la acción kinesisanalytics:ListApplications para que el usuario pueda ver una lista de aplicaciones. Se trata de una llamada a la API en el nivel de servicio y, por tanto, especifique"*" como valor de Resource.

  • Permiso de la acción kinesisanalytics:DescribeApplication para que pueda obtener información acerca de cualquiera de las aplicaciones.

Añada esta política para el usuario.

{ "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/*" } ] }

Verifique estos permisos iniciando sesión en la consola con las credenciales de usuario.

Paso 4: Permitir que el usuario inicie aplicaciones específicas

Si desea que el usuario pueda iniciar una de las aplicaciones de existentes, asocie la siguiente política al usuario. La política proporciona el permiso para la acción kinesisanalytics:StartApplication. Debe actualizar la política proporcionando su ID de cuenta, AWS región y nombre de la aplicación.

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

Paso 5: Permitir que el usuario cree una aplicación de

Si desea que el usuario cree una aplicación de , a continuación puede asociar la política siguiente al usuario. Debe actualizar la política y proporcionar una AWS región, su ID de cuenta y un nombre de aplicación específico que desee que cree el usuario o un «*» para que el usuario pueda especificar cualquier nombre de aplicación (y así crear varias aplicaciones).

{ "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" } ] }

Paso 6: permitir a la aplicación utilizar el procesamiento previo de Lambda

Si desea que la aplicación pueda utilizar el procesamiento previo de Lambda, asocie la siguiente política al rol.

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