Comunicación con otros recursos de AWS de sus flotas - Amazon GameLift

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.

Comunicación con otros recursos de AWS de sus flotas

Al crear una compilación de servidor de juegos para implementarla en las flotas de Amazon GameLift, es posible que desee que las aplicaciones de la compilación de juegos se comuniquen de forma directa y segura con otros recursos de AWS de su propiedad. Puesto que Amazon GameLift administra sus flotas de alojamiento de juegos, debe conceder a Amazon GameLift un acceso limitado a estos recursos y servicios.

Entre los ejemplos de escenarios se incluyen los siguientes:

  • Utilización de un agente de Amazon CloudWatch para recopilar métricas, registros y seguimientos de flotas de Anywhere y flotas de EC2 administradas

  • Envío de datos de registro de las instancias a Amazon CloudWatch Logs.

  • Obtención de archivos de juegos almacenados en un bucket de Amazon Simple Storage Service (Amazon S3).

  • Lectura y escritura de datos de juegos (como el inventario o los modos de juego) almacenados en una base de datos de Amazon DynamoDB u otro servicio de almacenamiento de datos.

  • Envío de señales directamente a una instancia mediante Amazon Simple Queue Service (Amazon SQS).

  • Acceso a recursos personalizados implementados y que se ejecutan en Amazon Elastic Compute Cloud (Amazon EC2).

Amazon GameLift admite los siguientes métodos para establecer el acceso:

Acceso a los recursos de AWS con un rol de IAM

Utilice un rol de IAM para especificar quién puede acceder a sus recursos y establecer límites a ese acceso. Las partes de confianza pueden «asumir» un rol y obtener credenciales de seguridad temporales que les autoricen a interactuar con los recursos. Cuando las partes realizan solicitudes de la API relacionadas con el recurso, deben incluir las credenciales.

Para configurar el acceso controlado por un rol de IAM, lleve a cabo las siguientes tareas:

Creación del rol de IAM

En este paso, cree un rol de IAM, con un conjunto de permisos para controlar el acceso a sus recursos de AWS y una política de confianza que otorgue a Amazon GameLift derechos para usar los permisos del rol.

Para obtener instrucciones sobre cómo configurar el rol de IAM, consulte Configurar un rol de servicio de IAM para Amazon GameLift. Al crear la política de permisos, elija servicios, recursos y acciones específicos con los que deben trabajar sus aplicaciones. Como práctica recomendada, limite el ámbito de los permisos tanto como sea posible.

Después de crear el rol, anote el nombre de recurso de Amazon (ARN) del rol. El ARN del rol será necesario durante la creación de la flota.

Modificación de las aplicaciones para adquirir credenciales

En este paso, debe configurar las aplicaciones para que adquieran credenciales de seguridad para el rol de IAM y las utilicen al interactuar con sus recursos de AWS. Consulte la siguiente tabla para determinar cómo modificar las aplicaciones en función de (1) el tipo de aplicación y (2) la versión del SDK del servidor que utilice el juego para comunicarse con Amazon GameLift.

Aplicaciones del servidor de juegos Otras aplicaciones

Uso del SDK del servidor, versión 5.x

Llame al método del SDK del servidor GetFleetRoleCredentials() desde el código del servidor de juegos.

Añada código a la aplicación para obtener las credenciales de un archivo compartido en la instancia de la flota.

Uso de la versión 4 o anterior del SDK del servidor

Llame a AWS Security Token Service (AWS STS) AssumeRole con el ARN del rol.

Llame a AWS Security Token Service (AWS STS) AssumeRole con el ARN del rol.

En el caso de los juegos integrados con el SDK 5.x del servidor, este diagrama muestra cómo las aplicaciones de la compilación del juego implementada pueden adquirir credenciales para el rol de IAM.


                    En una instancia de Amazon GameLift, las aplicaciones del servidor de juegos llaman a GetFleetRoleCredentials(). Otras aplicaciones utilizan un archivo de credenciales compartido que se puede almacenar en la instancia.

En el código del servidor de juegos, que ya debería estar integrado con el SDK del servidor de Amazon GameLift 5.x, llame a GetFleetRoleCredentials (C++) (C#) (Unreal) para recuperar un conjunto de credenciales temporales. Cuando las credenciales caduquen, puede actualizarlas con otra llamada a GetFleetRoleCredentials.

En el caso de las aplicaciones que no son de servidor y que se implementan con compilaciones de servidores de juegos que utilizan el SDK de servidor 5.x, añade código para obtener y utilizar las credenciales almacenadas en un archivo compartido. Amazon GameLift genera un perfil de credenciales para cada instancia de flota. Las credenciales están disponibles para que las utilicen todas las aplicaciones de la instancia. Amazon GameLift actualiza continuamente las credenciales temporales.

Debe configurar una flota para generar el archivo de credenciales compartidas al crear la flota.

En cada aplicación que necesite utilizar el archivo de credenciales compartido, especifique la ubicación del archivo y el nombre del perfil de la siguiente manera:

Windows:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "C:\\Credentials\\credentials"

Linux:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "/local/credentials/credentials"

Ejemplo: Configuración de un agente de CloudWatch para recopilar métricas para las instancias de flota de Amazon GameLift

Si desea utilizar un agente de Amazon CloudWatch para recopilar métricas, registros y seguimientos de sus flotas de Amazon GameLift, utilice este método para autorizar al agente a emitir los datos a su cuenta. En este escenario, realice los pasos siguientes:

  1. Recupere o escriba el archivo config.json del agente de CloudWatch.

  2. Actualice el archivo common-config.toml del agente para identificar el nombre del archivo de credenciales y el nombre del perfil, tal y como se describió previamente.

  3. Configure el script de instalación de la compilación del servidor de juegos para instalar e iniciar el agente de CloudWatch.

Añada código a sus aplicaciones para asumir el rol de IAM y obtener credenciales para interactuar con sus recursos de AWS. Cualquier aplicación que se ejecute en una instancia de flota de Amazon GameLift con un SDK del servidor 4 o anterior puede asumir el rol de IAM.

En el código de la aplicación, antes de acceder a un recurso de AWS, la aplicación debe llamar a la operación de la API AssumeRole API AWS Security Token Service (AWS STS) y especificar el ARN del rol. Esta operación devuelve un conjunto de credenciales temporales que autoriza a la aplicación a tener acceso al recurso de AWS. Para obtener más información, consulte Uso de credenciales temporales con AWS en la Guía del usuario de IAM.

Asociación del rol de IAM a una flota

Una vez que haya creado el rol de IAM y actualizado las aplicaciones de la compilación del servidor de juegos para obtener y usar las credenciales de acceso, podrá implementar una flota. Al configurar la nueva flota, establezca los siguientes parámetros:

  • InstanceRoleArn: establezca ese parámetro en el ARN del rol de IAM.

  • InstanceRoleCredentialsProvider: para solicitar a Amazon GameLift que genere un archivo de credenciales compartido para cada instancia de flota, establezca el parámetro en SHARED_CREDENTIAL_FILE.

Debe establecer esos valores al crear la flota. No se podrán actualizar más tarde.

Acceda a recursos de AWS con el emparejamiento de VPC.

Puede utilizar el emparejamiento de Amazon Virtual Private Cloud (Amazon VPC) para comunicarse entre aplicaciones que se ejecutan en una instancia de Amazon GameLift y otro recurso de AWS. Una VPC es una red virtual privada definida por usted que incluye un conjunto de recursos que se administran a través de su Cuenta de AWS. Cada flota de Amazon GameLift tiene su propia VPC. Gracias al emparejamiento de VPC, puede establecer una conexión de red directa entre la VPC de una flota y de otros recursos de AWS.

Amazon GameLift simplifica el proceso de configuración de las conexiones de emparejamiento de VPC para los servidores de juegos. Gestiona las solicitudes de interconexión, actualiza la tablas de ruteo y configura las conexiones según sea necesario. Para obtener instrucciones sobre cómo establecer el emparejamiento de VPC para los servidores de juegos, consulte Emparejamiento de VPC para Amazon GameLift.