Selecting the AWS S3 destination will send your test result data or issue data to your S3 bucket. AWS S3 is the recommended integration since AWS S3 has an extensive SDK, APIs, tools, training, and support communities. You don't have to host your own infrastructure or develop complex systems to manage things like high-availability databases.

When configured, you will see new-line delimited JSON objects in your S3 bucket.

For test result data, objects will be created every 5 minutes or every 25 000 records, whichever is first. The objects will be created in S3 with a prefix that indicates the UTC time the data was written to S3 in the following format:

<your bucket name>/Aruba-UXI/test_results.s3.<your dashboard uid>/year=<yyyy>/month=<mm>/day=<dd>/hour=h>

For issue data, objects will be created every 1 minute or every 25 000 records, whichever is first. The objects will be created in S3 with a prefix that indicates the UTC time the data was written to S3 in the following format:

<your bucket name>/Aruba-UXI/issues.s3.<your dashboard uid>/year=<yyyy>/month=<mm>/day=<dd>/hour=h>

You only need to create the bucket, the prefix is created by the data push destination.

Setup your S3 Bucket

There are two options for managing the access from the UXI dashboard to your S3 bucket: AWS IAM Users or AWS IAM Roles.

Get started with the UXI Data Push Destination for S3 with IAM User:

1. Create an AWS account.

2. Create an S3 bucket (Keep all the default settings for the bucket).

3. Create an IAM user, assign the user to a group and define the group policy as narrowly as possible to only the S3 bucket. It is not recommended to use a root user access key and secret. Here is an example policy assigned to a group:

{ 
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::<bucket-name>/*"
}
]
}

4. Create the access key under that IAM user.

Get started with the UXI Data Push Destination for S3 with IAM Role:

1. Create an AWS account.

2. Create an S3 bucket (Keep all the default settings for the bucket).

3. Create an IAM Role.

On IAM Roles, select Create Role

Select the option to specify a Custom Trust Policy and paste the following trust policy. Edit the sts:ExternalId and sts:RoleSessionName with your own values.

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"arn:aws:iam::976748715263:role/uxi-production-customer-integrations-kafka-connect"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"specifyYourExternalID",
"sts:RoleSessionName":"specifyYourRoleSessionName"
}
}
}
]
}

On the next screen, assign the role to a permission policy. Make sure to define the policy as narrowly as possible to only the S3 bucket. Here is an example policy.

{ 
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::<bucket-name>/*"
}
]
}

On the next screen give the role a name, review your settings and click Create Role.

Once created, locate the role ARN as you will need the role ARN, the External ID and the Role Session Name when configuring the integration in the UXI dashboard.

Configure your UXI Dashboard to Send Data to your S3 bucket

1. In the UXI dashboard, go to Settings > Integrations. In the Data Push Destinations section, click on the Add Destination button.

2. Select the following information from the Add Destination modal that appears:

  • Data Type: Test Results or Issues

  • Destination Type: AWS S3

  • Name: Give this integration a friendly name

  • Bucket Name: Enter the AWS bucket name

  • Region: Specify the Region (see list below)

  • Authentication: Choose either Access Key if using IAM Users or STS if using IAM Roles

    • If Access Key is chosen:

      • Access Key ID: Specify the access key ID for the IAM user

      • Secret: Specify the access key secret for the IAM user

    • If STS is chosen

      • Role ARN: Specify the role ARN

      • Session name: Specify the session name

      • External ID: Specify the external ID

3. Click on the Add button.

Note: AWS Regions: The configuration will expect one of the following regions to be specified: us-iso-east-1, us-isob-east-1, us-gov-east-1, us-gov-west-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-central-1, eu-north-1, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2, cn-north-1, cn-northwest-1

Here is a short demo setting up the data push destination for AWS S3.

Did this answer your question?