AWS S3 modules

The Adobe Workfront Fusion AWS S3 modules let you perform operations on your S3 buckets.

Access requirements

Expand to view access requirements for the functionality in this article.
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header
Adobe Workfront package

Any Adobe Workfront Workflow package and any Adobe Workfront Automation and Integration package

Workfront Ultimate

Workfront Prime and Select packages, with an additional purchase of Workfront Fusion.

Adobe Workfront licenses

Standard

Work or higher

Adobe Workfront Fusion license

Operation-based: Available to organizations with operation-based licenses

Connector-based (legacy): Workfront Fusion for Work Automation and Integration

Product If your organization has a Select or Prime Workfront package that does not include Workfront Automation and Integration, your organization must purchase Adobe Workfront Fusion.

For more detail about the information in this table, see Access requirements in documentation.

For information on Adobe Workfront Fusion licenses, see Adobe Workfront Fusion licenses.

Prerequisites

To use AWS S3 modules, you must have an Amazon Web Service account.

AWS S3 API information

The AWS S3 connector uses the following:

Base URL
code language-none
https://s3.{{parameters.region}}.amazonaws.com
API tag
v1.5.21

Connect AWS to Workfront Fusion connect-aws-to-workfront-fusion

Connect AWS to Workfront Fusion using a federated connection

Expand to view instructions for this connection type.

A federated connection lets Workfront Fusion access your AWS account without you creating an IAM user or storing an access key in Fusion.
Instead, you register Workfront Fusion as a trusted identity provider in your AWS account, and you configure which single Fusion connection is allowed to use a particular IAM role. When the connection runs, Fusion presents a short-lived proof of identity, and AWS returns temporary credentials that expire on their own. No long-lived key is ever created, stored, or rotated.

note
NOTE
Setting up this connection takes two visits to the AWS console. You create the role first, then create the connection in Workfront Fusion, then return to AWS to finish the trust policy. This is because part of the trust policy identifies one specific connection, and that identifier does not exist until the connection is created.

Prerequisites to connecting AWS to Workfront Fusion using a federated connection

To create this connection, you need the following:

  • Permission in AWS IAM to create an identity provider and to create and edit roles. This usually means the policy or equivalent. If you do not have this access, ask someone on your cloud or
    security team to complete the AWS steps for you.
  • The ability to create connections in Workfront Fusion.

Add Workfront Fusion as an identity provider in AWS

This step tells AWS that tokens issued by Workfront Fusion can be trusted. You do this once per AWS account. If someone in your organization has already added this provider, skip to Create the IAM role.

  1. Sign in to the AWS console and go to IAM > Identity providers.

  2. Select Add provider.

  3. For Provider type, select OpenID Connect.

  4. In Provider URL, enter the following, then select Get thumbprint:

    code language-none
    https://oidc.automations.adobe.com
    
  5. In Audience, enter the following:

    code language-none
    sts.amazonaws.com
    
  6. Select Add provider.

  7. Continue to Create the IAM role.

Create the IAM role

The role defines what the connection is allowed to do in your AWS account. You create one role per connection, so that each connection’s access can be granted and revoked independently.

  1. In IAM, go to Roles and select Create role.

  2. For Trusted entity type, select Web identity.

  3. In Identity provider, select oidc.automations.adobe.com.

  4. In Audience, select sts.amazonaws.com.

  5. Select Next, then attach the permissions policies this connection needs.
    Grant only the permissions the connection actually uses. For example, a connection that only reads from
    one bucket does not need AmazonS3FullAccess.

  6. Give the role a clear, recognizable name. For example, WorkfrontFusionFederatedConnection.

  7. Select Create role.

  8. Open the role you just created and copy its ARN from the Summary area. It looks like this: arn:aws:iam::123456789012:role/WorkfrontFusionFederatedConnection

  9. Continue to Create the connection in Workfront Fusion.

Create the connection in Workfront Fusion

  1. In the module’s connection setup screen, select the federated connection type.
  2. Enter the Role ARN you copied in Create the IAM role.
  3. Select Create.
    Workfront Fusion displays three values. You use them in the next procedure.
table 0-row-2 1-row-2 2-row-2 html-authored no-header
Issuer Always https://oidc.automations.adobe.com. This matches the identity provider you added in AWS.
Subject Identifies this one connection. It looks like fusion:6e5b1c2a345bd8d1ed98b6b4f1459818:28964. It is different for every connection you create.
Audience Always sts.amazonaws.com.
  1. Leave this panel open and copy the Subject value.

    note
    NOTE
    Do not close the panel or select Cancel. The connection is not finished until you complete the remaining procedures. If you close the panel, you must delete the connection and start again, because a new connection receives a new Subject.
  2. Continue to Add the connection to the role’s trust policy.

Add the connection to the role’s trust policy

Until you complete this procedure, the role trusts Workfront Fusion in general but does not yet allow this specific connection to use it.

  1. In a new browser tab, return to the AWS console and open the role you created.

  2. Select the Trust relationships tab, then select Edit trust policy.

  3. Replace the policy with the following, substituting your own values:

    • Replace 123456789012 with your AWS account ID
    • Replace the sub value with the Subject you copied from Workfront Fusion.
    code language-none
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.automations.adobe.com"
        },
        "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {
         "StringEquals": {
           "oidc.automations.adobe.com:sub": "fusion:6e5b1c2a345bd8d1ed98b6b4f1459818:28964",
           "oidc.automations.adobe.com:aud": "sts.amazonaws.com"
         }
        }
       }
     ]
    }
    
  4. Select Update policy.

  5. Continue to Verify the connection.

note tip
TIP
To let more than one connection use the same role, list the subjects as an array. AWS allows the role to be used if the token matches any value in the list:
code language-none
"oidc.automations.adobe.com:sub": [ "fusion:6e5b1c2a345bd8d1ed98b6b4f1459818:28964", "fusion:6e5b1c2a345bd8d1ed98b6b4f1459818:29011"
    ]
Do not replace the sub value with a wildcard. Doing so lets any connection in your organization use the role, including connections created later by other people

Verify the connection

  1. Return to the Workfront Fusion browser tab, where the connection panel is still open.

  2. Click Save.

    Workfront Fusion contacts AWS, which checks the trust policy and returns temporary credentials. If everything is set up correctly, the connection validates successfully and you can proceed with setting up the module.
    If verification fails, the panel stays open and displays the error. Correct the problem in AWS and select Save again. You do not need to recreate the connection, and the Subject does not change.

From this point on, the connection renews its own credentials. There is no key to rotate and nothing expires that you need to maintain.

Troubleshooting

table 0-row-3 1-row-3 2-row-3 3-row-3 html-authored
Error What it means What to check
InvalidIdentityToken AWS could not match the token to a registered identity provider. Check that you added the identity provider described in Add Workfront Fusion as an identity provider in AWS, and that its URL is exactly https://oidc.automations.adobe.com, with no trailing slash.
AccessDenied when assuming the role The identity provider is registered, but the trust policy does not match this connection. Check that the sub value in the trust policy is character-for-character identical to the Subject shown in Workfront Fusion, and that aud is sts.amazonaws.com. A Subject copied from a different connection is the most common cause.
The connection works, then fails later Check whether the role's permissions policies changed, or whether the role was deleted and recreated. Recreating a role does not change its ARN, but it does reset its trust policy.

Connect AWS to Workfront Fusion using an API user

Expand to view instructions for this connection type.

To connect AWS S3 to Workfront Fusion you must connect your AWS account to Workfront Fusion. To do so, you’ll first need to create an API user in AWS IAM.

  1. Sign in to your AWS IAM account.

  2. Navigate to Identity and Access Management > Access Management > Users.

  3. Click Add User.

  4. Enter the name of the new user and select the Programmatic access option in the Access type section.

  5. Click Attach existing policies directly, then search for AmazonS3FullAccess in the search bar. Click it when it appears, then click Next.

  6. Proceed through the other dialog screens, then click Create User.

  7. Copy the provided Access key ID and Secret access key.

  8. Go to Workfront Fusion and open the AWS S3 module’s Create a connection dialog.

  9. Enter the Access key ID and Secret access key from step 7 to the respective fields and click Continue to establish the connection.

The connection has been established. You can proceed with setting up the module.

AWS S3 modules and their fields

When you configure AWS S3 modules, Workfront Fusion displays the fields listed below. Along with these, additional AWS S3 fields might display, depending on factors such as your access level in the app or service. A bolded title in a module indicates a required field.

If you see the map button above a field or function, you can use it to set variables and functions for that field. For more information, see Map information from one module to another.

Map toggle

Actions

Create Bucket

This action module creates a bucket in AWS.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Name
Enter the name of the new bucket.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.

Get File

This action module downloads a file from a bucket.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.
Bucket
Select the bucket you want to download the file from.
Path
Enter the path to the file. Example: /photos/2019/February/image023.jpg.

Make an API Call

This action module makes a custom call to the AWS S3 API.

For a detailed discussion of the Amazon S3 API, see Amazon S3 REST API Introduction.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.
URL
Enter a host URL. The path must be relative to https://s3.<selected-region>.amazonaws.com/.
Method
Select the HTTP request method you need to configure the API call. For more information, see HTTP request methods in Adobe Workfront Fusion.
Headers

Add a request header. For each header you want to add, click Add item and enter the header. You can use the following common request headers. For more request headers refer to AWS S3 API Documentation.

Workfront Fusion adds authorization headers automatically.

table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 layout-auto
Header Name Description
Content-Length Length of the message (without the headers) according to RFC 2616. This header is required for PUTs and operations that load XML, such as logging and ACLs.
Content-Type The content type of the resource, in case the request content is in the body. Example: text/plain.
Content-MD5 The base64 encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, see Signing and authenticating REST requests in the AWS documentation.
Date The current date and time according to the requester. Example: Wed, 01 Mar 2006 12:00:00 GMT. When you specify the Authorization header, you must specify either the x-amz-date or the Date header.
Expect

When your application uses 100-continue, it does not send the request body until it receives an acknowledgment. If the message is rejected based on the headers, the body of the message is not sent. This header can be used only if you are sending a body.

Valid Values: 100-continue

Host

For path-style requests, the value is s3.amazonaws.com. For virtual-style requests, the value is BucketName.s3.amazonaws.com. For more information, see Virtual Hosting in the AWS documentation.

This header is required for HTTP 1.1 (most toolkits add this header automatically); optional for HTTP/1.0 requests.

x-amz-content-sha256 When using signature version 4 to authenticate the request, this header provides a hash of the request payload. When uploading an object in chunks, set the value to STREAMING-AWS4-HMAC-SHA256-PAYLOAD to indicate that the signature covers only headers and that there is no payload. For more information, see Signature Calculations for the Authorization Header in the AWS documentation.
x-amz-date The current date and time according to the requester. Example: Wed, 01 Mar 2006 12:00:00 GMT. When you specify the Authorization header, you must specify either the x-amz-date or the Date header. If you specify both, the value specified for the x-amz-date header takes precedence.
x-amz-security-token

This header can be used in the following scenarios:

  • Provide security tokens for Amazon DevPay operations. Each request that uses Amazon DevPay requires two x-amz-security-token headers: one for the product token and one for the user token. When Amazon S3 receives an authenticated request, it compares the computed signature with the provided signature. Improperly formatted multi-value headers used to calculate a signature can cause authentication issues.
  • Provide a security token when using temporary security credentials. When making requests using temporary security credentials you obtained from IAM, you must provide a security token using this header. To learn more about temporary security credentials, go to Making Requests.

This header is required for requests that use Amazon DevPay and requests that are signed using temporary security credentials.

Query String
Add the desired query strings such as parameters or form fields.
Body

Add the body content for the API call in the form of a standard JSON object.

Note:

When using conditional statements such as if in your JSON, put the quotation marks outside of the conditional statement.

Upload File

This action module uploads a file to an AWS S3 bucket.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.
Folder
Specify the target folder that you want to upload a file to.
Source file
Select a source file from a previous module, or map the source file's name and data.
Headers (optional)

For each header you want to add, click Add item and enter the header's key and value.

For available headers, see PutObject in the AWS documentation.

Searches

List Files

Returns a list of files from a specified location.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.
Bucket
Select the Amazon S3 bucket you want to search for files.
Prefix
Enter a path to a folder to look up files in, such as workfrontfusion/work.

List Folders

Returns a list of folders from a specified location.

Connection
For instructions about connecting your AWS account to Workfront Fusion, see Connect AWS to Workfront Fusion in this article.
Region
Select your regional endpoint. For more information, see regional endpoints in the AWS documentation.
Bucket
Select the Amazon S3 bucket you want to search for folders.
Prefix (optional)
Path to a folder to look up folders in, such as workfrontfusion/work.
recommendation-more-help
workfront-fusion-help-workfront-fusion