Identity and Access Management en Amazon OpenSearch sin servidor
AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quién puede autenticarse (iniciar sesión) y autorizar (tener permisos) para utilizar los recursos de OpenSearch sin servidor. IAM es un servicio de Servicio de AWS que se puede utilizar sin cargo adicional.
Temas
Políticas basadas en identidades de OpenSearch sin servidor
Compatibilidad con las políticas basadas en identidad: sí
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 para OpenSearch sin servidor
Para ver ejemplos de políticas basadas en identidad de OpenSearch sin servidor, consulte Ejemplos de políticas basadas en identidades para OpenSearch sin servidor.
Acciones de política de OpenSearch sin servidor
Compatibilidad con las acciones de políticas: sí
El elemento Action de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones de la política generalmente tienen el mismo nombre que la operación de API de AWS asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.
Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.
Las acciones de políticas de OpenSearch sin servidor utilizan el siguiente prefijo antes de la acción:
aoss
Para especificar varias acciones en una única instrucción, sepárelas con comas.
"Action": [ "aoss:action1", "aoss:action2" ]
Puede especificar varias acciones utilizando caracteres comodín (*). Por ejemplo, para especificar todas las acciones que comiencen con la palabra Describe, incluya la siguiente acción:
"Action": "aoss:List*"
Para ver ejemplos de políticas basadas en identidad de OpenSearch sin servidor, consulte Ejemplos de políticas basadas en identidades para OpenSearch sin servidor.
Recursos de políticas para OpenSearch sin servidor
Compatibilidad con los recursos de políticas: sí
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": "*"
Claves de condición de política para Amazon OpenSearch sin servidor
Compatibilidad con claves de condición de políticas específicas del servicio: sí
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. 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.
Además del control de acceso basado en atributos (ABAC), OpenSearch sin servidor admite las siguientes claves de condición:
-
aoss:collection -
aoss:CollectionId -
aoss:index
Puede utilizar estas claves de condición incluso al proporcionar políticas de acceso y de seguridad. Por ejemplo:
[ { "Effect":"Allow", "Action":[ "aoss:CreateAccessPolicy", "aoss:CreateSecurityPolicy" ], "Resource":"*", "Condition":{ "StringLike":{ "aoss:collection":"log" } } } ]
En este ejemplo, la condición se aplica a las políticas que contienen reglas que coinciden tanto con el nombre como con el patrón de una colección. Las condiciones funcionan de la el siguiente manera:
-
StringEquals: se aplica a políticas con reglas que contienen la cadena de exacta de recursos “log” (es decir,collection/log). -
StringLike: se aplica a políticas con reglas que contienen la cadena de recursos que incluye la cadena “log” (es decir,collection/logpero tambiéncollection/logs-applicationocollection/applogs123).
nota
Las claves de condiciones de colección no se aplican a nivel de índice. Por ejemplo, en la política anterior, la condición no se aplicaría a una política de acceso o seguridad que contenga la cadena de recursosindex/logs-application/*.
Para obtener una lista de las claves de condición de OpenSearch sin servidor, consulte Claves de condición de Amazon OpenSearch sin servidor en la Referencia de autorizaciones de servicio. Para obtener más información sobre las acciones y los recursos con los que puede utilizar una clave de condición, consulte Acciones definidas por Amazon OpenSearch sin servidor.
ABAC con OpenSearch sin servidor
Admite ABAC (etiquetas en las políticas): sí
El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos denominados etiquetas. Puede asociar etiquetas a entidades de IAM y recursos de AWS y, a continuación, diseñar políticas de ABAC para permitir operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso.
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-nameaws:RequestTag/ o key-nameaws:TagKeys.
Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es Sí para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es Parcial.
Para obtener más información sobre ABAC, consulte Definición de permisos con la autorización de ABAC en la Guía del usuario de IAM. Para ver un tutorial con los pasos para configurar ABAC, consulte Uso del control de acceso basado en atributos (ABAC) en la Guía del usuario de IAM.
Para obtener más información sobre el etiquetado de recursos OpenSearch sin servidor, consulte Etiquetado de colecciones de Amazon OpenSearch sin servidor.
Uso de credenciales temporales con OpenSearch sin servidor
Compatibilidad con credenciales temporales: sí
Las credenciales temporales proporcionan acceso a corto plazo a los recursos de AWS y se crean automáticamente cuando se utiliza la federación o se cambia de rol. AWS recomienda que genere de forma dinámica credenciales temporales en lugar de usar claves de acceso a largo plazo. Para obtener más información, consulte Credenciales de seguridad temporales en IAM y Servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.
Uso de roles vinculados a servicios para OpenSearch sin servidor
Admite roles vinculados a servicios: sí
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 puede ver, pero no editar, los permisos de los roles vinculados a servicios.
Para obtener más información sobre cómo crear o administrar roles vinculados a servicios de OpenSearch sin servidor, consulte Uso de roles vinculados a un servicio para crear colecciones de OpenSearch sin servidor.
Otros tipos de políticas
AWS admite otros tipos de políticas adicionales menos frecuentes. Estos tipos de políticas pueden establecer el máximo de permisos que los tipos de políticas más frecuentes le conceden.
-
Políticas de control de servicio (SCP): las SCP son políticas de JSON que especifican los permisos máximos de una organización o una unidad organizativa (OU) en AWS Organizations. AWS Organizations es un servicio que le permite agrupar y administrar de manera centralizada varias cuentas de AWS que posea su empresa. Si habilita todas las funciones en una organización, entonces podrá aplicar políticas de control de servicio (SCP) a una o todas sus cuentas. Las SCP limitan los permisos de las entidades de las cuentas miembro, incluido cada usuario raíz de la cuenta de AWS. Para obtener más información acerca de SCP y Organizations, consulta Políticas de control de servicios en la Guía del usuario de AWS Organizations.
-
Políticas de control de recursos (RCP): las RCP son políticas JSON que permiten establecer los permisos máximos disponibles para los recursos de las cuentas sin actualizar las políticas de IAM asociadas a cada recurso que posea. La RCP limita los permisos de los recursos en las cuentas de miembros y puede afectar a los permisos efectivos de las identidades, incluidos los usuarios raíz de la cuenta de AWS, independientemente de si pertenecen a su organización. Para obtener más información sobre Organizations y RCP, incluida una lista de los servicios de AWS que admiten RCP, consulte Políticas de control de recursos (RCP) en la Guía del usuario de AWS Organizations.
Ejemplos de políticas basadas en identidades para OpenSearch sin servidor
De forma predeterminada, los usuarios y roles no tienen permiso para crear, ver ni modificar recursos de OpenSearch sin servidor. 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 OpenSearch sin servidor, incluido el formato de los ARN para cada uno de los tipos de recursos, consulte Acciones, recursos y claves de condición para Amazon OpenSearch sin servidor en la Referencia de autorizaciones de servicio.
Temas
Prácticas recomendadas sobre las políticas
Las políticas basadas en identidad son muy eficaces. Determinan si alguien puede crear, acceder o eliminar los recursos de OpenSearch sin servidor de su 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:
Las políticas basadas en identidades determinan si alguien puede crear, acceder o eliminar recursos de OpenSearch sin servidor 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 OpenSearch sin servidor en la consola
Para acceder a OpenSearch sin servidor en la consola de OpenSearch Service, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle registrar y consultar los detalles acerca de los recursos de OpenSearch sin servidor en su cuenta de AWS. Si se crea una política basada en identidades que es más restrictiva que los permisos necesarios mínimos, la consola no funcionará del modo esperado para las entidades (tales como roles de IAM) 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 acceso únicamente a las acciones que coincidan con la operación de API que intenta realizar.
La siguiente política permite al usuario acceder a OpenSearch sin servidor desde la consola de OpenSearch Service:
Administración de colecciones de OpenSearch sin servidor
Esta política es un ejemplo de la política de “administración de colecciones” que permite al usuario gestionar y administrar las colecciones de Amazon OpenSearch sin servidor. El usuario puede crear, ver y eliminar colecciones.
Visualización de colecciones de OpenSearch sin servidor
Este ejemplo de política permite a un usuario ver los detalles de todas las colecciones de Amazon OpenSearch sin servidor de su cuenta. El usuario no puede modificar las colecciones ni las políticas de seguridad asociadas.
Uso de la operaciones de la API de OpenSearch
Las operaciones de la API del plano de datos consisten en las funciones que se utilizan en OpenSearch sin servidor para derivar el valor del servicio en tiempo real. Las operaciones de la API del plano de control consisten en las funciones que se utilizan para configurar el entorno.
Para acceder a las API del plano de datos de Amazon OpenSearch sin servidor y a OpenSearch Dashboards desde el navegador, debe añadir dos permisos de IAM para los recursos de recopilación. Estos permisos son aoss:APIAccessAll y aoss:DashboardsAccessAll.
nota
A partir del 10 de mayo de 2023, OpenSearch sin servidor requerirá estos dos nuevos permisos de IAM para los recursos de recopilación. El permiso aoss:APIAccessAll concede el acceso al plano de datos y el permiso aoss:DashboardsAccessAll permite abrir OpenSearch Dashboards desde el navegador. Si no se agregan los dos nuevos permisos de IAM, se produce un error 403.
Este ejemplo de política permite a un usuario acceder a las API del plano de datos para una colección específica de su cuenta y acceder a OpenSearch Dashboards para todas las colecciones de su cuenta.
Tanto aoss:APIAccessAll como aoss:DashboardsAccessAll otorgan el permiso completo de IAM a los recursos de la colección, mientras que el permiso de los paneles también permite el acceso a OpenSearch Dashboards. Cada permiso funciona de forma independiente, por lo que una denegación explícita de aoss:APIAccessAll no bloquea el acceso aoss:DashboardsAccessAll a los recursos, incluidas las herramientas para desarrolladores. Lo mismo sucede con una negación en aoss:DashboardsAccessAll. OpenSearch sin servidor admite las siguientes claves de condición globales:
-
aws:CalledVia -
aws:CalledViaAWSService -
aws:CalledViaFirst -
aws:CalledViaLast -
aws:CurrentTime -
aws:EpochTime -
aws:PrincipalAccount -
aws:PrincipalArn -
aws:PrincipallsAWSService -
aws:PrincipalOrgID -
aws:PrincipalOrgPaths -
aws:PrincipalType -
aws:PrincipalServiceName -
aws:PrincipalServiceNamesList -
aws:ResourceAccount -
aws:ResourceOrgID -
aws:ResourceOrgPaths -
aws:RequestedRegion -
aws:ResourceTag -
aws:SourceIp -
aws:SourceVpce -
aws:SourceVpc -
aws:userid -
aws:username -
aws:VpcSourceIp
El siguiente es un ejemplo de cómo usar aws:SourceIp en el bloque de condición de la política de IAM de su principal para llamadas al plano de datos:
"Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0" } }
El siguiente es un ejemplo de cómo usar aws:SourceVpc en el bloque de condición de la política de IAM de su principal para llamadas al plano de datos:
"Condition": { "StringEquals": { "aws:SourceVpc": "vpc-0fdd2445d8EXAMPLE" } }
Además, se ofrece soporte para las siguientes claves específicas de OpenSearch sin servidor:
-
aoss:CollectionId -
aoss:collection
El siguiente es un ejemplo de cómo usar aoss:collection en el bloque de condición de la política de IAM de su principal para llamadas al plano de datos:
"Condition": { "StringLike": { "aoss:collection": "log-*" } }
ABAC para operaciones de la API de OpenSearch
Las políticas basadas en identidad le permiten usar etiquetas para controlar el acceso a las API del plano de datos de Amazon OpenSearch sin servidor. La siguiente política es un ejemplo para permitir que las entidades principales adjuntas accedan a las API del plano de datos si la colección tiene la etiqueta team:devops:
La siguiente política es un ejemplo para denegar que las entidades principales adjuntas accedan a las API del plano de datos y al acceso a Dashboards si la colección tiene la etiqueta environment:production:
Amazon OpenSearch sin servidor no admite las claves de condición global RequestTag y TagKeys para las API del plano de datos.