GameLift Unreal Plugin -- Bootstrap Profile FAILED "Access Denied" for IAM User

0

I have the Unreal Gamelift plugin for AWS integrated. I am able to setup my user with AdministratorAccess + GameLiftGameServerGroupPolicy successfully, but I cannot find any information on how to setup additional users so my co-developers can bootstrap and connect to my Anywhere server. I created a new IAM user with GameLiftGameServerGroupPolicy attached, but I get the following error when bootstrapping: Account Invalid GameLiftCoreLog: Warning: AWSBootstrapProfile: Unable to create AWS credentials profile with an error: GAMELIFT ERROR GENERAL

Additionally, when I generate access keys and share them with co-developers, it says that the account can't even be found. If someone could point me to a tutorial/documentation on how to properly setup IAM users for other developers to connect to my Anywhere server that would be great. I am able to successfully deploy my server to EC2, and I can connect locally to my Anywhere server.

1 Answer
1

Hey mmakivic,

Firstly, GameLiftGameServerGroupPolicy is a managed policy meant to ease developer integration with Amazon GameLift's FleetIQ product (aka GameServerGroups): https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html. This product is not tied to the main Amazon GameLift product of Fleets that the Amazon GameLift Plugin for Unreal demonstrates.

The actions to give access to your co-developers depends on what you want them to be able to do:

  • You'll need to grant them gamelift:DescribeGameSessions and gamelift:CreatePlayerSession permissions so they can find existing game sessions and connect to them.
  • If you would like them to create their own game sessions on your Anywhere fleet, you'll also need to grant them gamelift:CreateGameSession permissions.

Additionally, if you've created an Anywhere fleet and are running the server yourself, your co-developers shouldn't need to use the editor at all and can directly use the client executable you've built. The GameLift Plugin for Unreal client looks for AWS credential profiles like the AWS CLI, so you can reference their documentation for developers to setup their profiles manually: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html . Here's a snippet for reference:

# In ~/.aws/credentials file
[my_custom_user]
aws_access_key_id=ABCDEFGHIJKLMEXAMPLE
aws_secret_access_key=abcdefghijkl/0123456/mnopqrstuEXAMPLEKEY
region=us-east-1 # AWS region you created the Anywhere fleet in

Lastly, if you'd like to look at the source code, this file handles the anywhere fleet connection logic: https://github.com/aws/amazon-gamelift-plugin-unreal/blob/main/GameLiftPlugin/Source/GameLiftClient/Private/UI/TestAnywhereMenuWidget.cpp

Hope that helps!

AWS
answered 22 days ago
  • Hi Jackson, Thanks for getting back to me, this was helpful. I created a new user with the permissions you outlined above. I have the user setup in my configuration file, and I've shared it with my co-developer. I will try to deploy a build that parses the configuration file. My main issue is that I'm trying to follow the instructions here: https://docs.aws.amazon.com/gamelift/latest/developerguide/unreal-plugin-profiles.html

    I keep getting the error in my original post when they input those credentials in the plugin. I was hoping that they could launch from the Editor because it seems to launch it properly with the correct command line arguments, but they are unable to setup a profile on their end. Furthermore, they can't sign in and create their own Anywhere server either.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions