The supports multiple methods of authenticating to AWS resources. At the topmost level, authentication can be broken down into two modes: system and user.
User mode: Individual user accounts must be configured with AWS credentials.
NOTE: This section covers how to manage AWS credentials through the APIs for individual users (user mode). When in system mode, please manage AWS configuration through the application. |
To connect to AWS resources and access S3 data, the following information is required for each user, depending on the method of authentication.
If users are providing key-secret combinations, the following information is required.
Item | Description |
---|---|
key/secret | (credential provider type is default ) The AWS key and secret for the user to authenticate |
default bucket | The default S3 bucket where the user can upload data and store generated results |
extra buckets | Any extra S3 buckets to which the user should have access |
Users can access AWS resources by assigning an awsConfig object to the account.
Tip: This method is recommended. |
The following information is required:
Item | Description | |
---|---|---|
IAM role | (credential provider type is
| |
default bucket | The default S3 bucket where the user can upload data and store generated results | |
extra buckets | Any extra S3 buckets to which the user should have access |
For each authentication method, the above pieces of information must be provided for each user.
These pieces of information are defined in an awsConfig
object. An awsConfig object is a set of AWS configuration properties that can be created, modified, and assigned to individual users via API.
For Method 2, the awsConfig object maps to an awsRole object. An awsRole object references an IAM role and an awsConfig object. When you create an awsConfig object and its credential provider is set to temporary
, the awsRole object is automatically created for you:
role
attribute. This workflow steps through the process for all these methods.
awsConfig
object, assigning the object to the user as part of the process.Acquire all of the information listed above for the awsConfig object you wish to create.
Now, you need to locate the internal identifier for the user to which you wish to assign this AWS configuration.
Request:
Endpoint | http://www.wrangle-dev.example.com:3005/v4/people |
---|---|
Authentication | Required |
Method | GET |
Request Body | None.
|
Response:
Status Code | 200 - Ok | |
---|---|---|
Response Body |
|
Checkpoint: In the above, you noticed that userId=2 is associated with awsConfig object id=1, which is the one you are replacing. This is the user to modify. Retain this value for later. |
For more information, see API People Get v4.
Create the AWS configuration object.
NOTE: Optionally, the |
NOTE: For Method 2, an awsRole object is automatically created for you when you create the awsConfig object. It is mapped to the awsConfig object. |
Request:
Endpoint | http://www.wrangle-dev.example.com:3005/v4/awsConfigs | ||
---|---|---|---|
Authentication | Required | ||
Method | POST | ||
Request Body | Method 1: AWS key-secret combination
Method 2: IAM role
|
Response for Method 2:
Status Code | 201 - Created | |
---|---|---|
Response Body | Method 2 example:
|
Checkpoint: In the above, the awsConfig object has an internal identifier ( As part of the request, this object was assigned to user 2 The For more information, see API AWSConfigs Create v4. |
To verify that the above configuration works:
Checkpoint: Configuration and verification is complete. |
If you need to change the IAM role ARN for a user, you can modify the awsConfig object for that user with the new role information.
NOTE: This section only applies if |
The following request modifies the awsConfig id=6
.
Request:
Endpoint | http://www.wrangle-dev.example.com:3005/v4/awsConfigs/6 | |
---|---|---|
Authentication | Required | |
Method | PUT | |
Request Body |
|
Response:
Status Code | 200 - OK | |
---|---|---|
Response Body |
|
Checkpoint: In the above step, you assigned a new IAM role to the awsConfig object. The underlying awsRole object is created for you and automatically assigned. For more information, see API AWSRoles Create v4. |
NOTE: After you have completed the above update, the previous awsRole object still exists. If the IAM role associated with it is no longer in use, you should delete the awsRole object. See API AWSRoles Delete v4. |
Suppose you have created your awsConfig objects to use the AWS Key-Secret method of authenticating. You have now created a set of IAM roles that you would like to assign to your .
The generalized workflow for completing this task is the following:
personId
, so that you can map your configuration changes to individuals. See API AWSConfigs Get v4.For each user account (personId
), you must identify the IAM role that you wish to assign it.
Request:
Endpoint | http://www.wrangle-dev.example.com:3005/v4/awsConfigs/<awsConfigsId> | |
---|---|---|
Authentication | Required | |
Method | PUT | |
Request Body |
|
Response for Method 2:
Status Code | 200 - Ok | |
---|---|---|
Response Body | Method 2 example:
|
Notes:
Item | Description |
---|---|
credentialProvider | To use IAM roles, this attribute must be updated to be temporary . |
role | The IAM role to assign to the configuration. |
personId | If needed, you can change the person (user) to which this awsConfig is applied. Note that the former user of the configuration cannot access AWS resources until you create a new configuration object for the user's account. |
activeRoleId | (response) Internal identifier of the awsRole object that was created for you and assigned to this awsConfig object. |
NOTE: The above request must be applied to each awsConfig object that you wish to remap to using an IAM role. |