Ejemplos de políticas basadas en identidad para Amazon SQS
De forma predeterminada, los usuarios y roles no tienen permiso para crear ni modificar los recursos de Amazon SQS. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.
Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte Creación de políticas de IAM (consola) en la Guía del usuario de IAM.
Para obtener más información sobre las acciones y los tipos de recursos definidos por Amazon SQS, incluido el formato de los ARN para cada uno de los tipos de recursos, consulte Acciones, recursos y claves de condición de Amazon Simple Queue Service en la Referencia de autorizaciones de servicio.
nota
Cuando configure los enlaces de ciclo de vida para Amazon EC2 Auto Scaling, no es necesario que escriba una política que envíe mensajes a una cola de Amazon SQS. Para obtener más información, consulte Enlaces de ciclo de vida de Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2.
Prácticas recomendadas sobre las políticas
Las políticas basadas en identidad determinan si alguien puede crear, eliminar o acceder a los recursos de Amazon SQS de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
-
Comienza con las políticas administradas por AWSy continúa con los permisos de privilegio mínimo: a fin de comenzar a conceder permisos a los usuarios y las cargas de tarea, utiliza las políticas administradas por AWS, que conceden permisos para muchos casos de uso comunes. Están disponibles en su Cuenta de AWS. Se recomienda definir políticas gestionadas por el cliente de AWS específicas para sus casos de uso a fin de reducir aún más los permisos. Con el fin de obtener más información, consulte las políticas administradas por AWS o las políticas administradas por AWS para funciones de tarea en la Guía de usuario de IAM.
-
Aplique permisos de privilegio mínimo: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.
-
Utilice condiciones en las políticas de IAM para restringir aún más el acceso: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puedes escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder acceso a acciones de servicios si se emplean a través de un Servicio de AWS determinado como, por ejemplo, CloudFormation. Para obtener más información, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.
-
Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte Validación de políticas con el Analizador de acceso de IAM en la Guía del usuario de IAM.
-
Solicite la autenticación multifactor (MFA): si se encuentra en una situación en la que necesite usuarios raíz o de IAM en su Cuenta de AWS, active la MFA para obtener una mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte Acceso seguro a la API con MFA en la Guía del usuario de IAM.
Para obtener más información sobre las prácticas recomendadas de IAM, consulte Prácticas recomendadas de seguridad en IAM en la Guía del usuario de IAM.
Uso de la consola de Amazon SQS
Para acceder a la consola de Amazon Simple Queue Service, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle mostrar y consultar los detalles sobre los recursos de Amazon SQS en la Cuenta de AWS. Si crea una política basada en identidades que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles) que tengan esa política.
No es necesario que conceda permisos mínimos para la consola a los usuarios que solo realizan llamadas a la AWS CLI o a la API de AWS. En su lugar, permite el acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.
Para asegurarse de que los usuarios y los roles puedan seguir utilizando la consola de Amazon SQS, asocie también la política administrada por AWS AmazonSQSReadOnlyAccess de Amazon SQS a las entidades. Para obtener más información, consulte Adición de permisos a un usuario en la Guía del usuario de IAM:
Cómo permitir a los usuarios consultar sus propios permisos
En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la API de AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
Permitir a un usuario crear colas
En el siguiente ejemplo, creamos una política para Bob que le permite obtener acceso a todas las acciones de Amazon SQS, pero solo con las colas cuyos nombres tengan como prefijo la cadena literal alice_queue_.
Amazon SQS no concede automáticamente al creador de una cola permisos para utilizar dicha cola. Por tanto, en la política de IAM debemos conceder de forma explícita a Bob los permisos para utilizar todas las acciones de Amazon SQS, además de para la acción CreateQueue.
Permitir que los desarrolladores escriban mensajes en una cola compartida
En el siguiente ejemplo, vamos a crear un grupo para los desarrolladores y a asociar una política que permita al grupo utilizar la acción SendMessage de Amazon SQS, pero solo con la cola que pertenece a la Cuenta de AWS especificada, que se denomina MyCompanyQueue.
Puede utilizar * en lugar de SendMessage para conceder las acciones siguientes de una cola compartida a una entidad principal: ChangeMessageVisibility, DeleteMessage, GetQueueAttributes, GetQueueUrl, ReceiveMessage y SendMessage.
nota
Aunque * incluye el acceso proporcionado por otros tipos de permisos, Amazon SQS considera los permisos por separado. Por ejemplo, es posible conceder los permisos * y SendMessage a un usuario, aunque * incluye el acceso que ofrece SendMessage.
Este concepto también se aplica al quitar un permiso. Si una entidad principal solo tiene el permiso * y se solicita la eliminación del permiso SendMessage, la entidad principal no se queda con los permisos restantes, sino que la solicitud no tiene ningún efecto, porque la entidad principal no tenía explícitamente el permiso SendMessage. Si desea dejar a la entidad principal únicamente con el permiso ReceiveMessage, añada primero el permiso ReceiveMessage y, a continuación, elimine el permiso *.
Permitir que los administradores obtengan el tamaño general de las colas
En el siguiente ejemplo, vamos a crear un grupo para los administradores y a asociar una política que permita al grupo utilizar la acción GetQueueAttributes de Amazon SQS con todas las colas que pertenecen a la cuenta de AWS especificada.
Permitir que un socio envíe mensajes a una cola específica
Puede realizar esta tarea mediante una política de Amazon SQS o una política de IAM. Si el socio tiene una Cuenta de AWS, puede que sea más fácil utilizar una política de Amazon SQS. Sin embargo, cualquier usuario de la empresa del socio que posea las credenciales de seguridad de AWS puede enviar mensajes a la cola. Si desea limitar el acceso a un determinado usuario o aplicación, debe tratar al socio como a un usuario de su propia empresa y utilizar una política de IAM en lugar de una política de Amazon SQS.
En este ejemplo se realizan las siguientes acciones:
-
Crear un grupo denominado WidgetCo para representar la compañía del socio.
-
Crear un usuario para la aplicación o el usuario específico de la compañía del socio que necesita acceso.
-
Añadir el usuario al grupo.
-
Adjuntar una política que conceda al grupo acceso únicamente a la acción
SendMessagesolo para la cola denominadaWidgetPartnerQueue.