Cómo funciona Amazon Managed Service para Apache Flink con IAM - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Cómo funciona Amazon Managed Service para Apache Flink con IAM

En Amazon MSF, se utiliza IAM en los siguientes contextos diferentes:

Permisos de aplicación

Usted controla los permisos de IAM de una aplicación de Amazon MSF con la función de IAM asignada a la aplicación, como parte de la configuración de la aplicación. Esta función de IAM determina los permisos de la aplicación para acceder a otros servicios, como Amazon S3, Kinesis Data Streams o DynamoDB, que utilizan IAM como autorización.

aviso

Es posible que cambiar los permisos de un rol de servicio interrumpa la funcionalidad de Amazon S3. Asegúrese de no eliminar los permisos de la aplicación para descargar el código de la aplicación del bucket de Amazon S3 y enviar los registros a Amazon CloudWatch.

No se admite la asignación de permisos a la aplicación mediante políticas basadas en recursos. No puede especificar una aplicación de Amazon MSF como principal en una política adjunta al recurso al que se va a acceder.

Permisos para acceder al código de la aplicación y a los registros de la aplicación

Amazon MSF también utiliza la función de IAM de la aplicación para acceder al código de la aplicación cargado en un bucket de Amazon S3 y para escribir los registros de la aplicación en Amazon CloudWatch Logs.

Al crear o actualizar la aplicación mediante la función de IAMConsola de administración de AWS, elija Crear o actualizar con las políticas requeridas <role-name>en la configuración de la aplicación, Amazon MSF crea y modifica automáticamente la función de IAM y asigna los permisos necesarios a Amazon S3 y CloudWatch Logs.

Si crea la función de IAM manualmente o si crea y administra la aplicación mediante herramientas de automatización, debe añadir los siguientes permisos a la función de IAM de la aplicación.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path-to-application-code" ] }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:*" ] }, { "Sid": "ListCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/kinesis-analytics/application-name:log-stream:*" ] }, { "Sid": "PutCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/kinesis-analytics/application-name:log-stream:kinesis-analytics-log-stream" ] } ] }

Prevención de la sustitución confusa entre servicios

Cuando una aplicación de Amazon MSF llama a otraServicio de AWS, puede proporcionar permisos de acceso más detallados. Por ejemplo, si una función de IAM se reutiliza en varias aplicaciones, una aplicación puede acceder a un recurso al que no debería tener acceso. Esto se conoce como el problema del diputado confuso. Para obtener información sobre cómo el recurso al que se ha accedido puede restringir el acceso a una aplicación específica de Amazon MSF, consultePrevención de la sustitución confusa entre servicios.

Control de recursos y administración del ciclo de vida de la aplicación

Las acciones para gestionar la aplicación y su ciclo de vida, como CreateApplication, StartApplication y UpdateApplication, se controlan mediante políticas basadas en la identidad asociadas al recurso que realiza la acción, como un usuario de IAM, un grupo de IAM o un recurso, como una llamada a la API de Amazon MSF. AWS Lambda

nota

La API y el SDK que controlan el ciclo de vida de las aplicaciones de Amazon MSF se denominan Amazon Kinesis Analytics V2 por motivos de compatibilidad con versiones anteriores.

No se admite la asignación de permisos para las acciones del ciclo de vida de las aplicaciones mediante políticas basadas en recursos adjuntas a la aplicación Amazon MSF. El rol de IAM de la aplicación no se utiliza para controlar el acceso a las acciones del ciclo de vida de la aplicación. No debe añadir permisos de ciclo de vida de la aplicación al rol de la aplicación.

En la siguiente tabla se enumeran las características de IAM que puede utilizar con las acciones del ciclo de vida de las aplicaciones de Amazon MSF.

Acciones de política de ciclo de vida de aplicación

Compatibilidad con las acciones de políticas:

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Action de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Las acciones de políticas de Amazon Q utilizan el siguiente prefijo antes de la acción: kinesisanalytics. Las API y los SDK de Amazon MSF utilizan el Amazon Kinesis Analytics V2 prefijo.

Para especificar varias acciones en una única instrucción, sepárelas con comas. En el siguiente ejemplo se muestra la sintaxis para especificar las acciones políticas de Amazon MSF.

"Action" : [ "kinesisanalytics:action1", "kinesisanalytics:action2" ]

También puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, para especificar todas las acciones que comiencen con la palabra Describe, incluya la siguiente acción.

"Action": "kinesisanalytics:Describe*"

Para ver una lista completa de todas las acciones de la API de Amazon MSF que puede especificar en el Action elemento de una declaración de política de IAM, consulte Acciones definidas por Amazon Kinesis Analytics V2.

Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte Ejemplos de políticas basadas en identidades.

Recursos de políticas de ciclo de vida de aplicación

Compatibilidad con los recursos de políticas:

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Resource de la política JSON especifica el objeto u objetos a los que se aplica la acción. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Para las acciones que no admiten permisos por recurso, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Los permisos para las acciones del ciclo de vida de las aplicaciones de Amazon MSF se definen para cada aplicación. El elemento Resource JSON de una política de IAM define la aplicación Amazon MSF a la que se aplican los permisos.

Se puede asignar permisos a una sola aplicación especificando el ARN de la aplicación o a un grupo de aplicaciones mediante caracteres comodín. En el ejemplo siguiente se muestra la sintaxis del campo Resource.

"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name

También puede asignar permisos para controlar un subconjunto de aplicaciones mediante caracteres comodín. Por ejemplo, puede asignar permisos para controlar todas las aplicaciones cuyo nombre comience con un prefijo concreto.

"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name-prefix*

Claves de condición del ciclo de vida de la aplicación

Compatibilidad con claves de condición de políticas específicas del servicio:

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Condition especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Se puede crear expresiones condicionales que utilizan operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición globales de AWS, consulte Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.

Se puede utilizar claves de condición para controlar los permisos de las acciones del ciclo de vida de las aplicaciones de Amazon MSF. Para obtener una lista de las claves de condición de Managed Service para Apache Flink, consulte Condition Keys for Amazon Managed Service para Apache Flink en la Referencia de autorizaciones de servicio. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte acciones definidas por Amazon Managed Service para Apache Flink.

Control de acceso basado en atributos (ABAC) con Managed Service para Apache Flink

Admite ABAC (etiquetas en las políticas):

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos. En AWS, estos atributos se denominan etiquetas. Se puedes adjuntar etiquetas a entidades de IAM (usuarios o roles) y a muchos recursos de AWS. El etiquetado de entidades y recursos es el primer paso de ABAC. A continuación, designa las políticas de ABAC para permitir operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso al que se intenta acceder.

ABAC es útil en entornos que crecen con rapidez y ayuda en situaciones en las que la administración de las políticas resulta engorrosa.

Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición aws:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys. Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es Parcial.

Uso de credenciales temporales

Compatibilidad con credenciales temporales:

Las acciones del ciclo de vida de las aplicaciones de Amazon MSF admiten credenciales temporales.

Utiliza credenciales temporales si inicia sesión en la Consola de administración de AWS con cualquier método excepto un nombre de usuario y una contraseña. Por ejemplo, cuando accede a AWS utilizando el enlace de inicio de sesión único (SSO) de la empresa, ese proceso crea automáticamente credenciales temporales. También crea automáticamente credenciales temporales cuando inicia sesión en la consola como usuario y luego cambia de rol. Para obtener más información sobre el cambio de roles, consulte Cambio de un usuario a un rol de IAM (consola) en la Guía del usuario de IAM.

Se puedes crear credenciales temporales de forma manual mediante la AWS CLI o la API de AWS. A continuación, puede usar las credenciales temporales para acceder a AWS. Se recomienda generar credenciales temporales de forma dinámica en lugar de utilizar claves de acceso a largo plazo. Para obtener más información, consulte Credenciales de seguridad temporales en IAM.

Permisos de entidades principales entre servicios

Admite sesiones de acceso directo (FAS):

Las acciones del ciclo de vida de las aplicaciones de Amazon MSF admiten permisos principales entre servicios.

Cuando utiliza un usuario o un rol de IAM para llevar a cabo acciones en AWS, se le considera una entidad principal. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. Las sesiones de acceso directo (FAS) utilizan los permisos de la entidad principal para llamar a un Servicio de AWS, combinados con el Servicio de AWS solicitante para realizar solicitudes a servicios posteriores. Las solicitudes de FAS solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS o recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte Reenviar sesiones de acceso.

Políticas basadas en identidad para los servicios gestionados de Amazon Flink

Compatibilidad con las políticas basadas en identidad:

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en identidad, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.

Ejemplos de políticas basadas en identidades de Managed Service para Apache Flink

Para consultar ejemplos de políticas basadas en la identidad de Managed Service para Apache Flink, consulte Ejemplos de políticas basadas en identidades de Amazon Managed Service para Apache Flink.

Políticas basadas en recursos dentro de Managed Service para Apache Flink

Amazon Managed Service para Apache Flink actualmente no admite el control de acceso basado en recursos.

Listas de control de acceso (ACL) en Managed Service para Apache Flink

Compatibilidad con ACL: no

Las listas de control de acceso (ACL) controlan qué entidades principales (miembros de cuentas, usuarios o roles) tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Roles de servicio para Managed Service para Apache Flink

Compatibilidad con roles de servicio:

Un rol de servicio es un rol de IAM que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.

aviso

Cambiar los permisos de un rol de servicio podría interrumpir la funcionalidad de Managed Service para Apache Flink. Edite los roles de servicio solo cuando Managed Service para Apache Flink proporcione orientación para hacerlo.

Roles vinculados a servicios para Managed Service para Apache Flink

Admite roles vinculados a servicios:

Un rol vinculado a servicios es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puedes asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puedes ver, pero no editar, los permisos de los roles vinculados a servicios.

Para más información sobre cómo crear o administrar roles vinculados a servicios, consulta Servicios de AWS que funcionan con IAM. Busque un servicio en la tabla que incluya Yes en la columna Rol vinculado a un servicio. Seleccione el vínculo para ver la documentación acerca del rol vinculado a servicios para ese servicio.