# Connecting SailPoint and AWS

To connect SailPoint with AWS, perform the following tasks:

## Adding the Source in SailPoint

To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs.

> [!IMPORTANT]
>
> By default, the provisioning feature is **disabled**, and the connector only supports read-only operations. To support provisioning operations, you must manually enable the feature in the source configuration.

**To configure a new source:**

1. Sign in to SailPoint.
2. Go to **Admin \> Connections \> Sources**.
3. Select **Create New**.
4. Search for the connector by entering the name in the search box, and then select **Configure**.
5. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters.
6. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters.
7. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](<https://documentation.sailpoint.com/saas/help/sources/index.html#assigning-a-source-owner>).
8. Under **Connection Type**, select **Direct Connection** or **Flat File**.

   - **Direct Connection** - A direct connection fetches data from the **Virtual Appliance Cluster** you choose as the application connector for the source. A direct connection configuration allows for real-time updates. For more information about configuring and deploying virtual appliances, refer to the [Virtual Appliance Reference Guide](<https://documentation.sailpoint.com/saas/help/va/index.html>).
   - **Flat File** - Select the flat file if no connector is available, or if another system restricts the connection. This option allows only reading and aggregating data as a generic/delimited application. Provisioning activity is unsupported, and additional configuration pages like connection settings and aggregation settings are unavailable.
9. If you selected **Direct Connection**, in **Virtual Appliance Cluster**, select the virtual appliance cluster that will be used as the application connector for the source.
10. (Optional) Select a governance group to grant its members [source](<https://documentation.sailpoint.com/saas/help/common/users/user_levels.html#source-sub-admin-user-level>) or [role](<https://documentation.sailpoint.com/saas/help/common/users/user_levels.html#role-sub-admin-user-level>) sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](<https://documentation.sailpoint.com/saas/help/common/users/governance_groups.html>).
11. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](<https://documentation.sailpoint.com/saas/help/setup/identity_profiles.html>).
12. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Continue to configure your connected source there.

## Base Configuration

Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary.

1. Enter a unique name and description for the source.
2. In the **Source Owner** dropdown list, select the identity that owns this source.

   - To find a source owner, begin entering their name.
3. In the **Virtual Appliance Cluster** dropdown list, select the virtual appliance to use when communicating with your organization's systems. For more information, refer to [SailPoint Virtual Appliances](<https://documentation.sailpoint.com/saas/help/va/index.html>).
4. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider.

   > **Note**
   >
   > To add a credential provider, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](<https://documentation.sailpoint.com/connectors/help/credential_providers.html>).
5. Configure the authentication to allow SailPoint to connect to the source. Refer to [Connection Settings](<#connection-settings>) for more information.
6. (Optional) In the **Governance Group for Source Management** dropdown list, select a governance group to associate with this source. For more information about governance groups, refer to [Associating Governance Groups with a Source](<https://documentation.sailpoint.com/saas/help/common/users/governance_groups.html#associating-a-governance-group-with-a-source>).
7. (Optional) Choose whether to enable or disable provisioning for the source. Provisioning is disabled by default.

   - **Enable Provisioning** - Set the toggle to **Enabled** to allow the source to create, update, and deactivate accounts in the connected source system.
   - **Disable Provisioning** - Set the toggle to **Disabled** to disable provisioning for the source. Disabling provisioning will prevent the creation, updating, or deactivating of accounts on this source.
8. Select **Save**.

## Connection Settings

Securely connect SailPoint and Amazon Web Services by choosing an authentication method and providing the required information. See [Required Permissions](<https://documentation.sailpoint.com/connectors/aws/va/help/required_permissions.html>) for more information.

### IAM Role Authentication Method

This authentication method is used when a Virtual Appliance (VA) is deployed on the AWS EC2 instance. The IAM role must be associated with any AWS account in the EC2 instance. Permissions for the role must be configured in the management AWS account and a trust relationship must be established.

> [!IMPORTANT]
>
> To manage organizational entities like service control policies, organization units, or AWS accounts, you must provide the Management Account ID and role permissions must be configured in the management AWS account.

> [!NOTE]
>
> **Screenshot**
>
> [![IAM Role Authentication Method](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_connection_settings_iam_role.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_connection_settings_iam_role.png>)

1. Enter the IAM **Role Name** that has authorization to call all the AWS accounts to be aggregated. This role must have the permissions specified in [Prerequisites](<https://documentation.sailpoint.com/connectors/aws/va/help/index.html#prerequisites>) and [IAM Role Authentication Method](<https://documentation.sailpoint.com/connectors/aws/va/help/required_permissions.html#iam-role-authentication-method>).
2. Enter the **External ID** for the role. This ID is included in the IAM role trust policy to designate who can assume the role.
3. Enter the **Management Account ID** for the organization. This is required to manage all AWS accounts as well as organization entities like service control policies, organization units.
4. Enter the **Region** name for the AWS data center. The default region is `us-east-1`.
5. Select **Save**.

### IAM User Authentication Method

This method uses the Access Key ID and Secret Access Key associated with the user. The IAM user is created in the management AWS or member AWS account based on the application configuration.

> [!IMPORTANT]
>
> To manage organizational entities like service control policies, organization units, or AWS accounts, the user account must be created in the management AWS account and permissions must be given through the cross-account role in the management AWS account.

> [!NOTE]
>
> **Screenshot**
>
> [![IAM User Authentication Method](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_connection_settings_iam_user.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_connection_settings_iam_user.png>)

1. Enter the **Access Key ID** for the IAM user configured for IAM database authentication.
2. Enter the **Secret Access Key** for the IAM user configured for IAM database authentication.
3. Enter the IAM **Role Name** that has authorization to call all the AWS accounts to be aggregated. This role must have the permissions specified in [Prerequisites](<https://documentation.sailpoint.com/connectors/aws/va/help/index.html#prerequisites>) and [IAM Role Authentication Method](<https://documentation.sailpoint.com/connectors/aws/va/help/required_permissions.html#iam-role-authentication-method>).
4. Enter the **Region** name for the AWS data center. The default region is `us-east-1`.
5. Select **Save**.

## Aggregation Settings

For more information about aggregation, refer to [Loading Account Data](<https://documentation.sailpoint.com/saas/help/accounts/loading_data.html>).

1. Enable **Manage All Accounts** if you want to manage IAM entities from all the AWS accounts on the AWS system except for some exclusions. Leave it disabled if you want to specify all the AWS accounts to include. Default: Disabled.

   > **Note**
   >
   > The test configuration will work regardless of whether the fields include or exclude AWS Account IDs.

   > **Screenshot**
   >
   > [![Aggregation Settings](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_agg_manage_accounts.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_agg_manage_accounts.png>)

   To manage all AWS accounts:

   - IAM User authentication - The IAM User must be configured in the management AWS account.
   - IAM Role authentication - The **Management Account ID** is required in [Connection Settings](<#connection-settings>).
2. If **Manage All Accounts** is enabled, enter the AWS account IDs, separated by a comma, to be excluded in the aggregation in **Exclude AWS Account IDs**. If it is disabled, enter the AWS account IDs, separated by a comma, to be included in the aggregation in **Include AWS Account IDs**.
3. Enter the number of records per page in **Page Size**.

   - Default: 10
   - Minimum: 1
   - Maximum: 1000

### Switch Role

You can change the role session name to a user friendly name that appears in the CloudTrail logs. You can specify the role and the duration of the session for that role to be used. For more information about how AWS handles this feature, refer to [Switching to a role (console)](<https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html>) in the AWS documentation.

> [!NOTE]
>
> This configuration has been moved from the API to the user interface.

> [!NOTE]
>
> **Screenshot**
>
> [![Switch Role](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_agg_role_session.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/aws_agg_role_session.png>)

1. Enter the role name to be used in **Role Session Name**.
2. Specify the length of the session in seconds in **Role Session Duration**.

   - Default: 3600 (1 hour)
   - Maximum: 43200 (12 hours)
   - Minimum: 3600 (1 hour)
3. Select **Save**.

## Additional Settings

Configure the settings for retry attempts when a timeout error occurs. For detailed information about AWS recommendations, refer to [Retries and backoff in the Amazon Builder's Library](<https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/#Retries_and_backoff>).

> [!NOTE]
>
> The linked document is not maintained by SailPoint and is subject to change without notice.

> [!NOTE]
>
> **Screenshot**
>
> [![Additional Settings](<https://documentation.sailpoint.com/connectors/aws/va/help/img/additional_settings.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/additional_settings.png>)

1. Specify the maximum number of retry attempts in **Maximum Retry Limit**. After the maximum number for retries, the job fails with an error log message. Default: 5
2. In **Base Delay (Milliseconds)**, specify the amount of time to wait before retrying the connection. The base delay exponentially increases after every retry attempt. For example, if the default base delay is 10 seconds, subsequent retry attempts will be 20 seconds, then 40 seconds, and so on. Default: 500
3. In **Throttled Base Delay (Milliseconds)**, specify the amount of time to wait if the initial retry fails. This time duration increases after every retry attempt. The value automatically increases exponentially with each failed attempt. Default: 1000
4. In **Maximum Backoff Time (Milliseconds)**, specify the amount of time to wait between attempts. After the delay reaches this maximum limit, the time between retries will stop increasing. Default: 20000

### Provisioning Configuration

> [!NOTE]
>
> **Screenshot**
>
> [![Provisioning Configuration](<https://documentation.sailpoint.com/connectors/aws/va/help/img/additional_provisioning.png>)](<https://documentation.sailpoint.com/connectors/aws/va/help/img/additional_provisioning.png>)

1. Provide the Amazon Resource Name (ARN) that applies to creating AWS accounts or password changes in **Change Password Policy ARN**.
2. Select **Save**.

## Review and Test

Perform a test to confirm the connection to SailPoint.

1. Go to **Review and Test**.
2. Confirm that the entries in each field are correct.

   If you note any mistakes, return to the section and make corrections.
3. Select **Test Connection**.

## SailPoint Application Onboarding

SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface.

For more information, refer to [Application Onboarding](<https://documentation.sailpoint.com/saas/help/ai/app_onboarding/index.html>) in the SailPoint SaaS documentation.
