AWS S3 modules
The Adobe Workfront Fusion AWS S3 modules let you perform operations on your S3 buckets.
Access requirements
| 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:
Connect AWS to Workfront Fusion connect-aws-to-workfront-fusion
Connect AWS to Workfront Fusion using a federated connection
- Prerequisites to connecting AWS to Workfront Fusion using a federated connection
- Add Workfront Fusion as an identity provider in AWS
- Create the IAM role
- Create the connection in Workfront Fusion
- Add the connection to the role’s trust policy
- Verify the connection
- Troubleshooting
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.
-
Sign in to the AWS console and go to IAM > Identity providers.
-
Select Add provider.
-
For Provider type, select OpenID Connect.
-
In Provider URL, enter the following, then select Get thumbprint:
code language-none https://oidc.automations.adobe.com -
In Audience, enter the following:
code language-none sts.amazonaws.com -
Select Add provider.
-
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.
-
In IAM, go to Roles and select Create role.
-
For Trusted entity type, select Web identity.
-
In Identity provider, select
oidc.automations.adobe.com. -
In Audience, select
sts.amazonaws.com. -
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 needAmazonS3FullAccess. -
Give the role a clear, recognizable name. For example,
WorkfrontFusionFederatedConnection. -
Select Create role.
-
Open the role you just created and copy its ARN from the Summary area. It looks like this:
arn:aws:iam::123456789012:role/WorkfrontFusionFederatedConnection -
Continue to Create the connection in Workfront Fusion.
Create the connection in Workfront Fusion
- In the module’s connection setup screen, select the federated connection type.
- Enter the Role ARN you copied in Create the IAM role.
- 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. |
-
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. -
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.
-
In a new browser tab, return to the AWS console and open the role you created.
-
Select the Trust relationships tab, then select Edit trust policy.
-
Replace the policy with the following, substituting your own values:
- Replace
123456789012with your AWS account ID - Replace the
subvalue 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" } } } ] } - Replace
-
Select Update policy.
-
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: | ||
|
||
| 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
-
Return to the Workfront Fusion browser tab, where the connection panel is still open.
-
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
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.
-
Sign in to your AWS IAM account.
-
Navigate to Identity and Access Management > Access Management > Users.
-
Click Add User.
-
Enter the name of the new user and select the Programmatic access option in the Access type section.
-
Click Attach existing policies directly, then search for AmazonS3FullAccess in the search bar. Click it when it appears, then click Next.
-
Proceed through the other dialog screens, then click Create User.
-
Copy the provided Access key ID and Secret access key.
-
Go to Workfront Fusion and open the AWS S3 module’s Create a connection dialog.
-
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.
Actions
Create Bucket
This action module creates a bucket in AWS.
Get File
This action module downloads a file from a bucket.
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.
https://s3.<selected-region>.amazonaws.com/.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 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:
This header is required for requests that use Amazon DevPay and requests that are signed using temporary security credentials. |
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.
Searches
List Files
Returns a list of files from a specified location.
List Folders
Returns a list of folders from a specified location.