Overview

AppsAnywhere has the ability to link to any AppStream environment in order to deliver remote resources to end users. Once you link AppsAnywhere to an AppStream environment you will then be able to reference AppStream applications as delivery methods and make them available to your users. In this article, we will discover how to create a new connection to an AppStream environment.

Creating the environment

  1. From the AppsAnywhere admin portal, search for AppStream, or go to Connectors > AppStream in the navigation menu

  2. Click on the Add environment button in the top right of the page

Enter the details of your AppStream environment:

Form Field Name

Explanation

Expected Value

Example

Display name

A friendly name for the environment.

You can call the environment anything you want.

AppStream Live Environment

Region

The AWS region in which the AppStream environment is situated.

This should be the region your AppStream environment is configured in. See available AppStream regions.

Known regions will also be available in the field to allow for auto-completion, simply start typing and suggestions will appear.

us-east-2

Custom domain

If you wish to use Embedded Streaming URLs, which allow us to provide more accurate analytics for app launches, a custom domain matching the domain used by AppsAnywhere is required.

If a custom domain is set, it may be edited, but it cannot then be removed.

The full name for your custom domain.

your.custom.domain.com

Enter the details of your AWS Access Key:

Form Field Name

Explanation

Expected Value

Example

Account ID

The ID of the AWS account.

The ID of the AWS account to be used.

123456789012

AWS Access Key ID

This field represents the ID of the access key within AWS that.

The ID of the access key which contains the policies specified on the AppsAnywhere environments screen.

AKIAU567ZDT7B5FCUWER

AWS secret access key

The secret access key for the AWS access key ID specified above.

The key secret for the AWS access key ID specified above.

If the access key ID is changed, the secret will need to be entered again as these are saved as a pair.

thr875PqgU5gHjURTghtn678QPkyj7uLP8tG8YM1POTbre

AWS Policies

The AWS access key used for the environment will require a specific set of policies in order for AppsAnywhere to retrieve the relevant information for your AppStream Stacks, Fleets and Applications and also generate the streaming URLs. These statements are provided on the Environment create and edit screens by expanding the Essential information - how to configure AWS policies section at the bottom of each page. There are also static policy references below this paragraph.

These statements may want to be refined in order to target specific resources you wish to make available - otherwise the use of the * wildcard will allow access to all resources listed.

The second policy detailing the DescribeApplicationFleetAssociations action however, must use the * wildcard due to a limitation with AppStream functionality. This cannot be changed.

The policy statements listed in AppsAnywhere contain placeholder values for your AWS account ID and region; filling out this information in the form will change these placeholder values dynamically, allowing you to copy the policies without the need to manually replace them.

If you are using Elastic Fleets, AppsAnywhere will need an additional AWS policy to be able to access app icons from AppStream. This is not mandatory, and is only used to display an icon beside the selected app when creating or editing an AppStream delivery method, but can help ensure that the correct app is selected. For this S3 policy, buckets must be specified explicitly as you may not want to give full access to all buckets. If access to more than one bucket is required, add new lines under "Resource", with a comma between each.

Policy statements

AppStream Access:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AppsAnywhereAppStreamAccess1",
            "Action": [
                "appstream:CreateStreamingURL",
                "appstream:DescribeApplications",
                "appstream:DescribeFleets",
                "appstream:DescribeImages",
                "appstream:DescribeStacks",
                "appstream:ListAssociatedFleets"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:stack/*",
                "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:fleet/*",
                "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:application/*",
                "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:image/*"
            ]
        },
        {
            "Sid": "AppsAnywhereAppStreamAccess2",
            "Action": [
                "appstream:DescribeApplicationFleetAssociations"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        }
    ]
}
CODE

S3 Access (Optional):

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AppsAnywhereS3Access",
			"Action": [
				"s3:GetObject"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:s3:::YOUR-BUCKET/*"
			]
		}
	]
}
CODE

Save the environment

Once you have entered all of the relevant details of the environment, hit the Save button.

You will be shown a success message, and when returning to the Viewing AppStream Environments page you can now see your environment listed.