Repository: aws/aws-cli

Issue:
`aws configure import --csv` Expected header 'User Name' not found yet exists in the CSV
### Describe the bug

Importing a configuration using the cli doesn't work. Producing an error that the expected header is not found yet is in the csv.

### Expected Behavior

Import the configuration and add the profile to the config.

### Current Behavior

PS C:\Users\DOUG> aws configure import --profile-prefix TheUnderground --csv file://"C:\Clients\TheUnderground\Credentials\Setup\Setup.csv" --debug
2023-03-04 11:56:27,304 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/2.11.0 Python/3.11.2 Windows/10 exe/AMD64
2023-03-04 11:56:27,306 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['configure', 'import', '--profile-prefix', 'TheUnderground', '--csv', 'file://C:\\Clients\\TheUnderground\\Credentials\\Setup\\Setup.csv', '--debug']
2023-03-04 11:56:27,352 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function add_s3 at 0x0000021AFB003920>
2023-03-04 11:56:27,352 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function add_ddb at 0x0000021AFAE50EA0>
2023-03-04 11:56:27,353 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <bound method BasicCommand.add_command of <class 'awscli.customizations.configure.configure.ConfigureCommand'>>
2023-03-04 11:56:27,353 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function change_name at 0x0000021AFADAD1C0>
2023-03-04 11:56:27,354 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function change_name at 0x0000021AFADD0680>
2023-03-04 11:56:27,354 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function alias_opsworks_cm at 0x0000021AFB011E40>
2023-03-04 11:56:27,354 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function add_history_commands at 0x0000021AFAE87880>
2023-03-04 11:56:27,355 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <bound method BasicCommand.add_command of <class 'awscli.customizations.devcommands.CLIDevCommand'>>
2023-03-04 11:56:27,355 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <function add_waiters at 0x0000021AFB011D00>
2023-03-04 11:56:27,356 - MainThread - botocore.hooks - DEBUG - Event building-command-table.main: calling handler <bound method AliasSubCommandInjector.on_building_command_table of <awscli.alias.AliasSubCommandInjector object at 0x0000021AFB0CA010>>
2023-03-04 11:56:27,357 - MainThread - botocore.loaders - DEBUG - Loading JSON file: C:\Apps\Amazon\AWSCLIV2\awscli\data\cli.json
2023-03-04 11:56:27,363 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <function resolve_types at 0x0000021AFAF59080>
2023-03-04 11:56:27,363 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <function no_sign_request at 0x0000021AFAF593A0>
2023-03-04 11:56:27,363 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <function resolve_verify_ssl at 0x0000021AFAF59300>
2023-03-04 11:56:27,364 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <function resolve_cli_read_timeout at 0x0000021AFAF594E0>
2023-03-04 11:56:27,364 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <function resolve_cli_connect_timeout at 0x0000021AFAF59440>
2023-03-04 11:56:27,365 - MainThread - botocore.hooks - DEBUG - Event top-level-args-parsed: calling handler <built-in method update of dict object at 0x0000021AFB0C7400>
2023-03-04 11:56:27,366 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/2.11.0 Python/3.11.2 Windows/10 exe/AMD64 prompt/off
2023-03-04 11:56:27,366 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['configure', 'import', '--profile-prefix', 'TheUnderground', '--csv', 'file://C:\\Clients\\TheUnderground\\Credentials\\Setup\\Setup.csv', '--debug']
2023-03-04 11:56:27,366 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_timestamp_parser at 0x0000021AFB0102C0>
2023-03-04 11:56:27,367 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x0000021AFAB3E0C0>
2023-03-04 11:56:27,367 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_binary_formatter at 0x0000021AFB087240>
2023-03-04 11:56:27,368 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function no_pager_handler at 0x0000021AFAB227A0>
2023-03-04 11:56:27,368 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x0000021AFAB939C0>
2023-03-04 11:56:27,370 - MainThread - botocore.utils - DEBUG - IMDS ENDPOINT: http://169.254.169.254/
2023-03-04 11:56:27,373 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x0000021AFAE84180>
2023-03-04 11:56:27,374 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_json_file_cache at 0x0000021AFAE41120>
2023-03-04 11:56:27,374 - MainThread - botocore.hooks - DEBUG - Event building-command-table.configure: calling handler <function _add_wizard_command at 0x0000021AFB085F80>
2023-03-04 11:56:27,375 - MainThread - botocore.hooks - DEBUG - Event building-command-table.configure: calling handler <function add_waiters at 0x0000021AFB011D00>
2023-03-04 11:56:27,376 - MainThread - botocore.hooks - DEBUG - Event building-command-table.configure: calling handler <bound method AliasSubCommandInjector.on_building_command_table of <awscli.alias.AliasSubCommandInjector object at 0x0000021AFB0CA010>>
2023-03-04 11:56:27,377 - MainThread - botocore.hooks - DEBUG - Event building-command-table.configure_import: calling handler <function add_waiters at 0x0000021AFB011D00>
2023-03-04 11:56:27,377 - MainThread - botocore.hooks - DEBUG - Event building-command-table.configure_import: calling handler <bound method AliasSubCommandInjector.on_building_command_table of <awscli.alias.AliasSubCommandInjector object at 0x0000021AFB0CA010>>
2023-03-04 11:56:27,378 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.custom.import.csv: calling handler <awscli.paramfile.URIArgumentHandler object at 0x0000021AFAB65090>
2023-03-04 11:56:27,379 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.custom.import: calling handler <awscli.argprocess.ParamShorthandParser object at 0x0000021AFAC05650>
2023-03-04 11:56:27,379 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.custom.import.skip-invalid: calling handler <awscli.paramfile.URIArgumentHandler object at 0x0000021AFAB65090>
2023-03-04 11:56:27,380 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.custom.import: calling handler <awscli.argprocess.ParamShorthandParser object at 0x0000021AFAC05650>
2023-03-04 11:56:27,380 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.custom.import.profile-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x0000021AFAB65090>
2023-03-04 11:56:27,381 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.custom.import: calling handler <awscli.argprocess.ParamShorthandParser object at 0x0000021AFAC05650>
2023-03-04 11:56:27,381 - MainThread - awscli.clidriver - DEBUG - Exception caught in main()
Traceback (most recent call last):
  File "awscli\clidriver.py", line 460, in main
  File "awscli\customizations\commands.py", line 151, in __call__
  File "awscli\customizations\commands.py", line 205, in __call__
  File "awscli\customizations\configure\importer.py", line 95, in _run_main
  File "awscli\customizations\configure\importer.py", line 83, in _import_csv
  File "awscli\customizations\configure\importer.py", line 181, in parse_credentials
  File "awscli\customizations\configure\importer.py", line 164, in _parse_csv
  File "awscli\customizations\configure\importer.py", line 128, in _extract_expected_header_indices
awscli.customizations.configure.importer.CredentialParserError: Expected header "User Name" not found

Expected header "User Name" not found

### Reproduction Steps

Command:
aws configure import --profile-prefix TheUnderground --csv file://"C:\Clients\TheUnderground\Credentials\Setup\Setup.csv" --debug

C:\Clients\TheUnderground\Credentials\Setup\Setup.csv:
User Name,Password,Access key ID,Secret access key
Setup,,XX,XX


### Possible Solution

_No response_

### Additional Information/Context

_No response_

### CLI version used

aws-cli/2.11.0 Python/3.11.2 Windows/10 exe/AMD64 prompt/off

### Environment details (OS name and version, etc.)

Windows 10.0.19041.2673

Discussion:
codecov-commenter: ## [Codecov](https://codecov.io/gh/aws/aws-cli/pull/7752?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws) Report
> Merging [#7752](https://codecov.io/gh/aws/aws-cli/pull/7752?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws) (4f7ceb8) into [v2](https://codecov.io/gh/aws/aws-cli/commit/09d91bf3a861b3c29faf447ec5b47f6bd48c378c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws) (09d91bf) will **increase** coverage by `0.00%`.
> The diff coverage is `100.00%`.

> :exclamation: Current head 4f7ceb8 differs from pull request most recent head 9894e42. Consider uploading reports for the commit 9894e42 to get more accurate results

```diff
@@           Coverage Diff           @@
##               v2    #7752   +/-   ##
=======================================
  Coverage   93.05%   93.05%           
=======================================
  Files         354      354           
  Lines       37463    37467    +4     
  Branches     6011     6012    +1     
=======================================
+ Hits        34861    34865    +4     
  Misses       1947     1947           
  Partials      655      655           
```


| [Impacted Files](https://codecov.io/gh/aws/aws-cli/pull/7752?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws) | Coverage Δ | |
|---|---|---|
| [awscli/customizations/configure/importer.py](https://codecov.io/gh/aws/aws-cli/pull/7752?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws#diff-YXdzY2xpL2N1c3RvbWl6YXRpb25zL2NvbmZpZ3VyZS9pbXBvcnRlci5weQ==) | `97.41% <100.00%> (+0.09%)` | :arrow_up: |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aws)


Patch:
diff --git a/.changes/2.11.3.json b/.changes/2.11.3.json
deleted file mode 100644
index 76d800463..000000000
--- a/.changes/2.11.3.json
+++ /dev/null
@@ -1,72 +0,0 @@
-[
-  {
-    "category": "``secretsmanager``",
-    "description": "The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values.",
-    "type": "api-change"
-  },
-  {
-    "category": "``application-autoscaling``",
-    "description": "Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric.",
-    "type": "api-change"
-  },
-  {
-    "category": "``codeartifact login``",
-    "description": "Prevent AWS CodeArtifact login command from hanging unexpectedly.",
-    "type": "bugfix"
-  },
-  {
-    "category": "``lakeformation``",
-    "description": "This release updates the documentation regarding Get/Update DataCellsFilter",
-    "type": "api-change"
-  },
-  {
-    "category": "``iam``",
-    "description": "Documentation only updates to correct customer-reported issues",
-    "type": "api-change"
-  },
-  {
-    "category": "``keyspaces``",
-    "description": "Adding support for client-side timestamps",
-    "type": "api-change"
-  },
-  {
-    "category": "``tnb``",
-    "description": "This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate.",
-    "type": "api-change"
-  },
-  {
-    "category": "``ivschat``",
-    "description": "This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations.",
-    "type": "api-change"
-  },
-  {
-    "category": "``appintegrations``",
-    "description": "Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint.",
-    "type": "api-change"
-  },
-  {
-    "category": "``wisdom``",
-    "description": "This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField",
-    "type": "api-change"
-  },
-  {
-    "category": "``dataexchange``",
-    "description": "This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies.",
-    "type": "api-change"
-  },
-  {
-    "category": "``directconnect``",
-    "description": "describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating.",
-    "type": "api-change"
-  },
-  {
-    "category": "``ec2``",
-    "description": "This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs.",
-    "type": "api-change"
-  },
-  {
-    "category": "``s3control``",
-    "description": "Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts.",
-    "type": "api-change"
-  }
-]
\ No newline at end of file
diff --git a/.changes/next-release/apichange-appintegrations-90511.json b/.changes/next-release/apichange-appintegrations-90511.json
new file mode 100644
index 000000000..f0b6a970b
--- /dev/null
+++ b/.changes/next-release/apichange-appintegrations-90511.json
@@ -0,0 +1,5 @@
+{
+  "category": "``appintegrations``",
+  "description": "Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-applicationautoscaling-84851.json b/.changes/next-release/apichange-applicationautoscaling-84851.json
new file mode 100644
index 000000000..f84ebb8be
--- /dev/null
+++ b/.changes/next-release/apichange-applicationautoscaling-84851.json
@@ -0,0 +1,5 @@
+{
+  "category": "``application-autoscaling``",
+  "description": "Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-dataexchange-51174.json b/.changes/next-release/apichange-dataexchange-51174.json
new file mode 100644
index 000000000..faa3267ba
--- /dev/null
+++ b/.changes/next-release/apichange-dataexchange-51174.json
@@ -0,0 +1,5 @@
+{
+  "category": "``dataexchange``",
+  "description": "This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-directconnect-88199.json b/.changes/next-release/apichange-directconnect-88199.json
new file mode 100644
index 000000000..bd4283558
--- /dev/null
+++ b/.changes/next-release/apichange-directconnect-88199.json
@@ -0,0 +1,5 @@
+{
+  "category": "``directconnect``",
+  "description": "describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-ec2-88970.json b/.changes/next-release/apichange-ec2-88970.json
new file mode 100644
index 000000000..3a0313dfc
--- /dev/null
+++ b/.changes/next-release/apichange-ec2-88970.json
@@ -0,0 +1,5 @@
+{
+  "category": "``ec2``",
+  "description": "This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-iam-55532.json b/.changes/next-release/apichange-iam-55532.json
new file mode 100644
index 000000000..4d1f4b060
--- /dev/null
+++ b/.changes/next-release/apichange-iam-55532.json
@@ -0,0 +1,5 @@
+{
+  "category": "``iam``",
+  "description": "Documentation only updates to correct customer-reported issues",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-ivschat-94771.json b/.changes/next-release/apichange-ivschat-94771.json
new file mode 100644
index 000000000..6a0898cde
--- /dev/null
+++ b/.changes/next-release/apichange-ivschat-94771.json
@@ -0,0 +1,5 @@
+{
+  "category": "``ivschat``",
+  "description": "This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-keyspaces-26674.json b/.changes/next-release/apichange-keyspaces-26674.json
new file mode 100644
index 000000000..cd4fa4626
--- /dev/null
+++ b/.changes/next-release/apichange-keyspaces-26674.json
@@ -0,0 +1,5 @@
+{
+  "category": "``keyspaces``",
+  "description": "Adding support for client-side timestamps",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-lakeformation-63773.json b/.changes/next-release/apichange-lakeformation-63773.json
new file mode 100644
index 000000000..ba7eadc28
--- /dev/null
+++ b/.changes/next-release/apichange-lakeformation-63773.json
@@ -0,0 +1,5 @@
+{
+  "category": "``lakeformation``",
+  "description": "This release updates the documentation regarding Get/Update DataCellsFilter",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-s3control-26482.json b/.changes/next-release/apichange-s3control-26482.json
new file mode 100644
index 000000000..e76a67585
--- /dev/null
+++ b/.changes/next-release/apichange-s3control-26482.json
@@ -0,0 +1,5 @@
+{
+  "category": "``s3control``",
+  "description": "Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-secretsmanager-80084.json b/.changes/next-release/apichange-secretsmanager-80084.json
new file mode 100644
index 000000000..451e1a203
--- /dev/null
+++ b/.changes/next-release/apichange-secretsmanager-80084.json
@@ -0,0 +1,5 @@
+{
+  "category": "``secretsmanager``",
+  "description": "The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-tnb-38221.json b/.changes/next-release/apichange-tnb-38221.json
new file mode 100644
index 000000000..b6aeb94d9
--- /dev/null
+++ b/.changes/next-release/apichange-tnb-38221.json
@@ -0,0 +1,5 @@
+{
+  "category": "``tnb``",
+  "description": "This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate.",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/apichange-wisdom-46034.json b/.changes/next-release/apichange-wisdom-46034.json
new file mode 100644
index 000000000..fc5e8d7e5
--- /dev/null
+++ b/.changes/next-release/apichange-wisdom-46034.json
@@ -0,0 +1,5 @@
+{
+  "category": "``wisdom``",
+  "description": "This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField",
+  "type": "api-change"
+}
\ No newline at end of file
diff --git a/.changes/next-release/bugfix-codeartifact login-515.json b/.changes/next-release/bugfix-codeartifact login-515.json
new file mode 100644
index 000000000..49440731c
--- /dev/null
+++ b/.changes/next-release/bugfix-codeartifact login-515.json
@@ -0,0 +1,5 @@
+{
+  "category": "``codeartifact login``",
+  "description": "Prevent AWS CodeArtifact login command from hanging unexpectedly.",
+  "type": "bugfix"
+}
\ No newline at end of file
diff --git a/.changes/next-release/bugfix-configure-38726.json b/.changes/next-release/bugfix-configure-38726.json
new file mode 100644
index 000000000..31540cba1
--- /dev/null
+++ b/.changes/next-release/bugfix-configure-38726.json
@@ -0,0 +1,5 @@
+{
+  "category": "configure",
+  "type": "enhancement",
+  "description": "Add support for importing CSV credential files that have leading UTF-8 BOM. Fixes `#7721 <https://github.com/aws/aws-cli/issues/7721>`__."
+}
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 01fd20f88..5709d511d 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -2,25 +2,6 @@
 CHANGELOG
 =========
 
-2.11.3
-======
-
-* api-change:``secretsmanager``: The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values.
-* api-change:``application-autoscaling``: Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric.
-* bugfix:``codeartifact login``: Prevent AWS CodeArtifact login command from hanging unexpectedly.
-* api-change:``lakeformation``: This release updates the documentation regarding Get/Update DataCellsFilter
-* api-change:``iam``: Documentation only updates to correct customer-reported issues
-* api-change:``keyspaces``: Adding support for client-side timestamps
-* api-change:``tnb``: This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate.
-* api-change:``ivschat``: This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations.
-* api-change:``appintegrations``: Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint.
-* api-change:``wisdom``: This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField
-* api-change:``dataexchange``: This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies.
-* api-change:``directconnect``: describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating.
-* api-change:``ec2``: This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs.
-* api-change:``s3control``: Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts.
-
-
 2.11.2
 ======
 
diff --git a/awscli/__init__.py b/awscli/__init__.py
index 4b769bad3..834a962c5 100644
--- a/awscli/__init__.py
+++ b/awscli/__init__.py
@@ -19,7 +19,7 @@ import os
 import importlib.abc
 import sys
 
-__version__ = '2.11.3'
+__version__ = '2.11.2'
 
 #
 # Get our data path to be added to botocore's search path
diff --git a/awscli/customizations/configure/importer.py b/awscli/customizations/configure/importer.py
index a87adec36..dc7e6e088 100644
--- a/awscli/customizations/configure/importer.py
+++ b/awscli/customizations/configure/importer.py
@@ -12,8 +12,8 @@
 # language governing permissions and limitations under the License.
 import os
 import sys
+import codecs
 
-from awscli.compat import compat_open
 from awscli.customizations.utils import uni_print
 from awscli.customizations.commands import BasicCommand
 from awscli.customizations.configure.writer import ConfigFileWriter
@@ -115,6 +115,9 @@ class CSVCredentialParser(object):
         self.strict = strict
 
     def _format_header(self, header):
+        # Remove leading UTF BOM character if present
+        if header.startswith(codecs.BOM_UTF8.decode()):
+            header = header[1:]
         return header.lower().strip()
 
     def _parse_csv_headers(self, header):
diff --git a/configure b/configure
index 55da3b4f0..926afc255 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for awscli 2.11.3.
+# Generated by GNU Autoconf 2.71 for awscli 2.11.2.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -607,8 +607,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='awscli'
 PACKAGE_TARNAME='awscli'
-PACKAGE_VERSION='2.11.3'
-PACKAGE_STRING='awscli 2.11.3'
+PACKAGE_VERSION='2.11.2'
+PACKAGE_STRING='awscli 2.11.2'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1255,7 +1255,7 @@ _ACEOF
 fi
 if $ac_init_version; then
   cat <<\_ACEOF
-awscli configure 2.11.3
+awscli configure 2.11.2
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1292,7 +1292,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by awscli $as_me 2.11.3, which was
+It was created by awscli $as_me 2.11.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2630,7 +2630,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by awscli $as_me 2.11.3, which was
+This file was extended by awscli $as_me 2.11.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2685,7 +2685,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-awscli config.status 2.11.3
+awscli config.status 2.11.2
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 65423e435..8e7c6aeda 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_CONFIG_MACRO_DIRS([m4])
-AC_INIT([awscli], [2.11.3])
+AC_INIT([awscli], [2.11.2])
 AC_CONFIG_SRCDIR([bin/aws])
 AM_PATH_PYTHON([3.8])
 
diff --git a/doc/source/conf.py b/doc/source/conf.py
index add43ae57..5a2173415 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -71,7 +71,7 @@ copyright = u'2018, Amazon Web Services'
 # The short X.Y version.
 version = '2.0'
 # The full version, including alpha/beta/rc tags.
-release = '2.11.3'
+release = '2.11.2'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/requirements/download-deps/portable-exe-lock.txt b/requirements/download-deps/portable-exe-lock.txt
index 477693dbe..0d1212c94 100644
--- a/requirements/download-deps/portable-exe-lock.txt
+++ b/requirements/download-deps/portable-exe-lock.txt
@@ -10,39 +10,39 @@ altgraph==0.17.3 \
     # via
     #   macholib
     #   pyinstaller
-awscrt==0.16.12 \
-    --hash=sha256:03666624fe49d2b65b199138574406a8764d56c5e200af2c22fcb1593c8f4df8 \
-    --hash=sha256:1370d8e8689cb96b030cdeeda10e8fad086a213752160b907f76af096d0a2e5f \
-    --hash=sha256:1fc32e0ed7b7257148b534067c4dbffb61571974ca49063555205db5b9181dcd \
-    --hash=sha256:35c67e48ad1ade7b03556f06c6ad674e0d21ba64fc7dd4242c2eaf0555ed9d4a \
-    --hash=sha256:3986a456b7b7a00ce602e50ddfaa7218ceb2794ea4961d46286c43b5b358cc10 \
-    --hash=sha256:3d53d68c3c9879469f3f5c252d2d8ec37cee2fc6ad5bcb9be18210d7728a7bc7 \
-    --hash=sha256:3df4f575ebf7c4a62725df3ccda8c80dd89efa3ded7ee5e99f01f8bfc2559e52 \
-    --hash=sha256:603fc43f29c333d2de9a1c3161c723cd3282a221e7eaa76f5d580f206bc197a1 \
-    --hash=sha256:62afcd0e4a2e7d91e69235ad67d7b64caaec75192a1b442442776edd1f451a09 \
-    --hash=sha256:6b946019081052aa039891c7d90348653a3e453bf7c3cdf73e6bc360ee3ed6e1 \
-    --hash=sha256:731425a94953cac07bcc4fd52f9a7df5bfb2a7b3c9f1a4a75ccfdc50ee2c5eec \
-    --hash=sha256:7396435e62b6158891559558f66dd5185c591f4576e689d86c837ed6d7827d41 \
-    --hash=sha256:783f48fdb3d480ac6b7cc1d8e110ae81978e7b7f901fb607e9b5d1bd53c836a5 \
-    --hash=sha256:7f7b16396c409265bcd775749d7a900d693a130b2f1aa1e1f01eaa860dc7ac8b \
-    --hash=sha256:83469aa1108ac78ed2581aff6528109deb017a88dcb12dc2cfbce7a07e973107 \
-    --hash=sha256:8c08565d6ef9ed900dda609385a6882852706ba2629620e9689e3c690bde7824 \
-    --hash=sha256:8db633a3aca74f1e360937b6704237cec56fb70e30f2aaa69741be15b737345f \
-    --hash=sha256:8f17144260e54bf6acc5e638d0974438c1c5c7b08ae84cd70216daa75b64ee6b \
-    --hash=sha256:9a1dd12ee8a7278799104a5adf8f8ce0a65932de3148d6fb36996358aa3952ec \
-    --hash=sha256:9deb086573019cb7d7a37dce8369db1b5e765e7e28c530dbfb7f544ae443377d \
-    --hash=sha256:a42d0f5d517431e621c8580996c35ee96acdc65366ba3f3ee6727401712d3bd8 \
-    --hash=sha256:a92b14537a51894d805e0144e9756f07fc2596a221caa3445e555435aec2e681 \
-    --hash=sha256:bbe8f56c820e5daf5a3c32ad8ec85e32eb189c990d428951a04979397ed82f29 \
-    --hash=sha256:be03dda743f5b13f0f9e80e04fb051fc84bb132f650c5bfd96dbc80be5cbd27d \
-    --hash=sha256:de5834c3ffadc480ffbf597a3576be4ff4e019b689895251d2236bc22ebda57b \
-    --hash=sha256:e263610f91ecfecce0fe42b008672a6f8c345965de2aff3fc686a846ff67c11d \
-    --hash=sha256:e4db83842cf55c39e1151af81a93b1828d85185a5a5a80d78c0bba081ad78919 \
-    --hash=sha256:e5f46be9366e13b871ab417b6e352da83a505b7372f0b200e3b259a0319619c7 \
-    --hash=sha256:e97264a9dabeaa6db636a1978cf2c9a753ec392f891825b19c0d625f2878118d \
-    --hash=sha256:f85c900f647114cd9f5f9268a31825b74affca4f30c6e9c886474a29c528db86 \
-    --hash=sha256:f9b19c82805e3e07edfd92d4f481f35d11fa49e40320418c648a47119a2b4a0e \
-    --hash=sha256:fff00e3945fc76b03cf1e1106caee500b2a78ef7ee2265e714510042a6f46454
+awscrt==0.16.13 \
+    --hash=sha256:0a310a0c07c46c0f25e8af5f3f68b9e9a5a774a3bfafec3e63507ad5ce8cfdbe \
+    --hash=sha256:194ee9d651e632310964e68f113b641bf1dd84a895b43f9f6c7ccde96d41ab79 \
+    --hash=sha256:2718ece264256db2a66ba478d6798d5431e7b934075f4ee5cdf59a480a93d028 \
+    --hash=sha256:291fe8e97bed9a9a7c7f1706c9db126043d15aa4fa4b454fea915e5645ed526a \
+    --hash=sha256:2a1b69ec1a0e04f6e07870984904f0517de9b82afee976bcdf08412e10e64779 \
+    --hash=sha256:2f7ffe994e5a929b42a6d729d7cb98741a4d99e0a15780e3e9353a2b9888cc65 \
+    --hash=sha256:3bfa1d461bcd43ed61ce76e4cf88a739f585d3cd8e17f789b8ed33da39595b41 \
+    --hash=sha256:42ac0407e6ee7d51089e0ded5924669977daa79b03489926275d2aae957cebff \
+    --hash=sha256:45f0b593e42744df9508c0e7154173c49286ddd040b333e2578e080e65650a21 \
+    --hash=sha256:49d862f0aa38f02294d6443efe14fe51af50248f8edfc2b99cd5c3107affba86 \
+    --hash=sha256:5b887ce774380a2ce9ca09119845f037e2f229efe92527e23a5c6314b2c32115 \
+    --hash=sha256:5e5868ffb8ba6ffe7944bcbd492bc7bc87acdd8dac0bbd074f24ad44568eda91 \
+    --hash=sha256:6c7d1ab45ad9c42f50aac626fefee29f9cdd63df59209d8657275f100f3d782c \
+    --hash=sha256:6f8ad5f687cdbea10345229c7778af8de08acdb3a8c0bad634f5d7710b5e7c47 \
+    --hash=sha256:7727afdf45d6d3e13f9ac0ee5efa0fee0ff5eea357eea3afbb28fdc618b2396e \
+    --hash=sha256:83a5c0c0136900e6c35adbc95003a2c2893524a04947697dec470085dd7ab67b \
+    --hash=sha256:92f3c00a4cd528f4c6401b2b40d774fe084c9689ebd27c9cb694d072853a5a37 \
+    --hash=sha256:95eae388e74cc1fb9b5a2103ab3120a28c379c06a3fb37049873ad2c4d9026f5 \
+    --hash=sha256:980766566f8e806bf13289cd8c11904ba3381cb615423bd96b8c453cc4968a17 \
+    --hash=sha256:984f8c1de67079658e21871fb15b0c95418ca03e3c206defeec47facb43d48cd \
+    --hash=sha256:9c5a257164e1873c17e5f1586b2375e5a294f3a3751f56857e38509b3b1043c7 \
+    --hash=sha256:9d588a7d5fa5e6e24ff476fb0597a402ca533b35073970d109fabb0cc921b82a \
+    --hash=sha256:a769a4958822ee86ab5115a5117ed45c4400565ff92dd891b6b995c5db595551 \
+    --hash=sha256:b0a4a794aaf083f09fa034ca739ae3440430faa5fe69763762b865d66681aedd \
+    --hash=sha256:b7ec07435e178400369024450d118834a1c8b01ccfebe8140b82102fb161720d \
+    --hash=sha256:bb907ef72a1dae9d7fe62d4aecbd4a9f1e835d9de329ef2d10c316b143c3833c \
+    --hash=sha256:bc923c9dce6e69c0f9bb7db743f6a9e7b45d2018622f299f1b410636727bf135 \
+    --hash=sha256:d5a1391284ae89c5030ba1d4eefedc6f3d131d039fb335c1b52bddab88d77b20 \
+    --hash=sha256:e344901ad78c410fcdd258165b692418705a02069ef162accea6e6416a3e0cf9 \
+    --hash=sha256:e40361dceda3d78e1c1b1cb412242dfecd1ea415c77c4b52e26775c725711bb8 \
+    --hash=sha256:e87534fed7e6515fe6e8cf045862e9cb8bf7c74f0ec9deac52c41e40d78d9b03 \
+    --hash=sha256:f33e343ecf33a81c917641bd6d4d36a55468de0ba41e9b9b1ad7ba3960c939bb
     # via awscli (pyproject.toml)
 cffi==1.15.1 \
     --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
@@ -177,9 +177,9 @@ pyinstaller==5.7.0 \
     --hash=sha256:dfc12e92fe10ae645dd0dd1fcfa4cd7677b2e96119e3cd4980d742e09bb78925 \
     --hash=sha256:f35f06d48faea0ad738429c009941059beebaa306e9d9ead95f1df4b441de2aa
     # via -r requirements/portable-exe-extras.txt
-pyinstaller-hooks-contrib==2023.0 \
-    --hash=sha256:29d052eb73e0ab8f137f11df8e73d464c1c6d4c3044d9dc8df2af44639d8bfbf \
-    --hash=sha256:bd578781cd6a33ef713584bf3726f7cd60a3e656ec08a6cc7971e39990808cc0
+pyinstaller-hooks-contrib==2023.1 \
+    --hash=sha256:ab56c192e7cd4472ff6b840cda4fc42bceccc7fb4234f064fc834a3248c0afdd \
+    --hash=sha256:d2ea40a7105651aa525bfe5fe309aa264d4d9bb49f839b862243dcf0a56c34cd
     # via pyinstaller
 python-dateutil==2.8.2 \
     --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
diff --git a/requirements/download-deps/portable-exe-win-lock.txt b/requirements/download-deps/portable-exe-win-lock.txt
index f5d83ec10..ee1153b61 100644
--- a/requirements/download-deps/portable-exe-win-lock.txt
+++ b/requirements/download-deps/portable-exe-win-lock.txt
@@ -8,39 +8,39 @@ altgraph==0.17.3 \
     --hash=sha256:ad33358114df7c9416cdb8fa1eaa5852166c505118717021c6a8c7c7abbd03dd \
     --hash=sha256:c8ac1ca6772207179ed8003ce7687757c04b0b71536f81e2ac5755c6226458fe
     # via pyinstaller
-awscrt==0.16.12 \
-    --hash=sha256:03666624fe49d2b65b199138574406a8764d56c5e200af2c22fcb1593c8f4df8 \
-    --hash=sha256:1370d8e8689cb96b030cdeeda10e8fad086a213752160b907f76af096d0a2e5f \
-    --hash=sha256:1fc32e0ed7b7257148b534067c4dbffb61571974ca49063555205db5b9181dcd \
-    --hash=sha256:35c67e48ad1ade7b03556f06c6ad674e0d21ba64fc7dd4242c2eaf0555ed9d4a \
-    --hash=sha256:3986a456b7b7a00ce602e50ddfaa7218ceb2794ea4961d46286c43b5b358cc10 \
-    --hash=sha256:3d53d68c3c9879469f3f5c252d2d8ec37cee2fc6ad5bcb9be18210d7728a7bc7 \
-    --hash=sha256:3df4f575ebf7c4a62725df3ccda8c80dd89efa3ded7ee5e99f01f8bfc2559e52 \
-    --hash=sha256:603fc43f29c333d2de9a1c3161c723cd3282a221e7eaa76f5d580f206bc197a1 \
-    --hash=sha256:62afcd0e4a2e7d91e69235ad67d7b64caaec75192a1b442442776edd1f451a09 \
-    --hash=sha256:6b946019081052aa039891c7d90348653a3e453bf7c3cdf73e6bc360ee3ed6e1 \
-    --hash=sha256:731425a94953cac07bcc4fd52f9a7df5bfb2a7b3c9f1a4a75ccfdc50ee2c5eec \
-    --hash=sha256:7396435e62b6158891559558f66dd5185c591f4576e689d86c837ed6d7827d41 \
-    --hash=sha256:783f48fdb3d480ac6b7cc1d8e110ae81978e7b7f901fb607e9b5d1bd53c836a5 \
-    --hash=sha256:7f7b16396c409265bcd775749d7a900d693a130b2f1aa1e1f01eaa860dc7ac8b \
-    --hash=sha256:83469aa1108ac78ed2581aff6528109deb017a88dcb12dc2cfbce7a07e973107 \
-    --hash=sha256:8c08565d6ef9ed900dda609385a6882852706ba2629620e9689e3c690bde7824 \
-    --hash=sha256:8db633a3aca74f1e360937b6704237cec56fb70e30f2aaa69741be15b737345f \
-    --hash=sha256:8f17144260e54bf6acc5e638d0974438c1c5c7b08ae84cd70216daa75b64ee6b \
-    --hash=sha256:9a1dd12ee8a7278799104a5adf8f8ce0a65932de3148d6fb36996358aa3952ec \
-    --hash=sha256:9deb086573019cb7d7a37dce8369db1b5e765e7e28c530dbfb7f544ae443377d \
-    --hash=sha256:a42d0f5d517431e621c8580996c35ee96acdc65366ba3f3ee6727401712d3bd8 \
-    --hash=sha256:a92b14537a51894d805e0144e9756f07fc2596a221caa3445e555435aec2e681 \
-    --hash=sha256:bbe8f56c820e5daf5a3c32ad8ec85e32eb189c990d428951a04979397ed82f29 \
-    --hash=sha256:be03dda743f5b13f0f9e80e04fb051fc84bb132f650c5bfd96dbc80be5cbd27d \
-    --hash=sha256:de5834c3ffadc480ffbf597a3576be4ff4e019b689895251d2236bc22ebda57b \
-    --hash=sha256:e263610f91ecfecce0fe42b008672a6f8c345965de2aff3fc686a846ff67c11d \
-    --hash=sha256:e4db83842cf55c39e1151af81a93b1828d85185a5a5a80d78c0bba081ad78919 \
-    --hash=sha256:e5f46be9366e13b871ab417b6e352da83a505b7372f0b200e3b259a0319619c7 \
-    --hash=sha256:e97264a9dabeaa6db636a1978cf2c9a753ec392f891825b19c0d625f2878118d \
-    --hash=sha256:f85c900f647114cd9f5f9268a31825b74affca4f30c6e9c886474a29c528db86 \
-    --hash=sha256:f9b19c82805e3e07edfd92d4f481f35d11fa49e40320418c648a47119a2b4a0e \
-    --hash=sha256:fff00e3945fc76b03cf1e1106caee500b2a78ef7ee2265e714510042a6f46454
+awscrt==0.16.13 \
+    --hash=sha256:0a310a0c07c46c0f25e8af5f3f68b9e9a5a774a3bfafec3e63507ad5ce8cfdbe \
+    --hash=sha256:194ee9d651e632310964e68f113b641bf1dd84a895b43f9f6c7ccde96d41ab79 \
+    --hash=sha256:2718ece264256db2a66ba478d6798d5431e7b934075f4ee5cdf59a480a93d028 \
+    --hash=sha256:291fe8e97bed9a9a7c7f1706c9db126043d15aa4fa4b454fea915e5645ed526a \
+    --hash=sha256:2a1b69ec1a0e04f6e07870984904f0517de9b82afee976bcdf08412e10e64779 \
+    --hash=sha256:2f7ffe994e5a929b42a6d729d7cb98741a4d99e0a15780e3e9353a2b9888cc65 \
+    --hash=sha256:3bfa1d461bcd43ed61ce76e4cf88a739f585d3cd8e17f789b8ed33da39595b41 \
+    --hash=sha256:42ac0407e6ee7d51089e0ded5924669977daa79b03489926275d2aae957cebff \
+    --hash=sha256:45f0b593e42744df9508c0e7154173c49286ddd040b333e2578e080e65650a21 \
+    --hash=sha256:49d862f0aa38f02294d6443efe14fe51af50248f8edfc2b99cd5c3107affba86 \
+    --hash=sha256:5b887ce774380a2ce9ca09119845f037e2f229efe92527e23a5c6314b2c32115 \
+    --hash=sha256:5e5868ffb8ba6ffe7944bcbd492bc7bc87acdd8dac0bbd074f24ad44568eda91 \
+    --hash=sha256:6c7d1ab45ad9c42f50aac626fefee29f9cdd63df59209d8657275f100f3d782c \
+    --hash=sha256:6f8ad5f687cdbea10345229c7778af8de08acdb3a8c0bad634f5d7710b5e7c47 \
+    --hash=sha256:7727afdf45d6d3e13f9ac0ee5efa0fee0ff5eea357eea3afbb28fdc618b2396e \
+    --hash=sha256:83a5c0c0136900e6c35adbc95003a2c2893524a04947697dec470085dd7ab67b \
+    --hash=sha256:92f3c00a4cd528f4c6401b2b40d774fe084c9689ebd27c9cb694d072853a5a37 \
+    --hash=sha256:95eae388e74cc1fb9b5a2103ab3120a28c379c06a3fb37049873ad2c4d9026f5 \
+    --hash=sha256:980766566f8e806bf13289cd8c11904ba3381cb615423bd96b8c453cc4968a17 \
+    --hash=sha256:984f8c1de67079658e21871fb15b0c95418ca03e3c206defeec47facb43d48cd \
+    --hash=sha256:9c5a257164e1873c17e5f1586b2375e5a294f3a3751f56857e38509b3b1043c7 \
+    --hash=sha256:9d588a7d5fa5e6e24ff476fb0597a402ca533b35073970d109fabb0cc921b82a \
+    --hash=sha256:a769a4958822ee86ab5115a5117ed45c4400565ff92dd891b6b995c5db595551 \
+    --hash=sha256:b0a4a794aaf083f09fa034ca739ae3440430faa5fe69763762b865d66681aedd \
+    --hash=sha256:b7ec07435e178400369024450d118834a1c8b01ccfebe8140b82102fb161720d \
+    --hash=sha256:bb907ef72a1dae9d7fe62d4aecbd4a9f1e835d9de329ef2d10c316b143c3833c \
+    --hash=sha256:bc923c9dce6e69c0f9bb7db743f6a9e7b45d2018622f299f1b410636727bf135 \
+    --hash=sha256:d5a1391284ae89c5030ba1d4eefedc6f3d131d039fb335c1b52bddab88d77b20 \
+    --hash=sha256:e344901ad78c410fcdd258165b692418705a02069ef162accea6e6416a3e0cf9 \
+    --hash=sha256:e40361dceda3d78e1c1b1cb412242dfecd1ea415c77c4b52e26775c725711bb8 \
+    --hash=sha256:e87534fed7e6515fe6e8cf045862e9cb8bf7c74f0ec9deac52c41e40d78d9b03 \
+    --hash=sha256:f33e343ecf33a81c917641bd6d4d36a55468de0ba41e9b9b1ad7ba3960c939bb
     # via awscli (pyproject.toml)
 cffi==1.15.1 \
     --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
@@ -175,9 +175,9 @@ pyinstaller==5.7.0 \
     --hash=sha256:dfc12e92fe10ae645dd0dd1fcfa4cd7677b2e96119e3cd4980d742e09bb78925 \
     --hash=sha256:f35f06d48faea0ad738429c009941059beebaa306e9d9ead95f1df4b441de2aa
     # via -r requirements\portable-exe-extras.txt
-pyinstaller-hooks-contrib==2023.0 \
-    --hash=sha256:29d052eb73e0ab8f137f11df8e73d464c1c6d4c3044d9dc8df2af44639d8bfbf \
-    --hash=sha256:bd578781cd6a33ef713584bf3726f7cd60a3e656ec08a6cc7971e39990808cc0
+pyinstaller-hooks-contrib==2023.1 \
+    --hash=sha256:ab56c192e7cd4472ff6b840cda4fc42bceccc7fb4234f064fc834a3248c0afdd \
+    --hash=sha256:d2ea40a7105651aa525bfe5fe309aa264d4d9bb49f839b862243dcf0a56c34cd
     # via pyinstaller
 python-dateutil==2.8.2 \
     --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
diff --git a/requirements/download-deps/system-sandbox-lock.txt b/requirements/download-deps/system-sandbox-lock.txt
index 74ae5e5eb..938e59aac 100644
--- a/requirements/download-deps/system-sandbox-lock.txt
+++ b/requirements/download-deps/system-sandbox-lock.txt
@@ -4,39 +4,39 @@
 #
 #    pip-compile --generate-hashes --output-file=requirements/download-deps/system-sandbox-lock.txt --unsafe-package=flit-core --unsafe-package=pip --unsafe-package=setuptools --unsafe-package=wheel pyproject.toml
 #
-awscrt==0.16.12 \
-    --hash=sha256:03666624fe49d2b65b199138574406a8764d56c5e200af2c22fcb1593c8f4df8 \
-    --hash=sha256:1370d8e8689cb96b030cdeeda10e8fad086a213752160b907f76af096d0a2e5f \
-    --hash=sha256:1fc32e0ed7b7257148b534067c4dbffb61571974ca49063555205db5b9181dcd \
-    --hash=sha256:35c67e48ad1ade7b03556f06c6ad674e0d21ba64fc7dd4242c2eaf0555ed9d4a \
-    --hash=sha256:3986a456b7b7a00ce602e50ddfaa7218ceb2794ea4961d46286c43b5b358cc10 \
-    --hash=sha256:3d53d68c3c9879469f3f5c252d2d8ec37cee2fc6ad5bcb9be18210d7728a7bc7 \
-    --hash=sha256:3df4f575ebf7c4a62725df3ccda8c80dd89efa3ded7ee5e99f01f8bfc2559e52 \
-    --hash=sha256:603fc43f29c333d2de9a1c3161c723cd3282a221e7eaa76f5d580f206bc197a1 \
-    --hash=sha256:62afcd0e4a2e7d91e69235ad67d7b64caaec75192a1b442442776edd1f451a09 \
-    --hash=sha256:6b946019081052aa039891c7d90348653a3e453bf7c3cdf73e6bc360ee3ed6e1 \
-    --hash=sha256:731425a94953cac07bcc4fd52f9a7df5bfb2a7b3c9f1a4a75ccfdc50ee2c5eec \
-    --hash=sha256:7396435e62b6158891559558f66dd5185c591f4576e689d86c837ed6d7827d41 \
-    --hash=sha256:783f48fdb3d480ac6b7cc1d8e110ae81978e7b7f901fb607e9b5d1bd53c836a5 \
-    --hash=sha256:7f7b16396c409265bcd775749d7a900d693a130b2f1aa1e1f01eaa860dc7ac8b \
-    --hash=sha256:83469aa1108ac78ed2581aff6528109deb017a88dcb12dc2cfbce7a07e973107 \
-    --hash=sha256:8c08565d6ef9ed900dda609385a6882852706ba2629620e9689e3c690bde7824 \
-    --hash=sha256:8db633a3aca74f1e360937b6704237cec56fb70e30f2aaa69741be15b737345f \
-    --hash=sha256:8f17144260e54bf6acc5e638d0974438c1c5c7b08ae84cd70216daa75b64ee6b \
-    --hash=sha256:9a1dd12ee8a7278799104a5adf8f8ce0a65932de3148d6fb36996358aa3952ec \
-    --hash=sha256:9deb086573019cb7d7a37dce8369db1b5e765e7e28c530dbfb7f544ae443377d \
-    --hash=sha256:a42d0f5d517431e621c8580996c35ee96acdc65366ba3f3ee6727401712d3bd8 \
-    --hash=sha256:a92b14537a51894d805e0144e9756f07fc2596a221caa3445e555435aec2e681 \
-    --hash=sha256:bbe8f56c820e5daf5a3c32ad8ec85e32eb189c990d428951a04979397ed82f29 \
-    --hash=sha256:be03dda743f5b13f0f9e80e04fb051fc84bb132f650c5bfd96dbc80be5cbd27d \
-    --hash=sha256:de5834c3ffadc480ffbf597a3576be4ff4e019b689895251d2236bc22ebda57b \
-    --hash=sha256:e263610f91ecfecce0fe42b008672a6f8c345965de2aff3fc686a846ff67c11d \
-    --hash=sha256:e4db83842cf55c39e1151af81a93b1828d85185a5a5a80d78c0bba081ad78919 \
-    --hash=sha256:e5f46be9366e13b871ab417b6e352da83a505b7372f0b200e3b259a0319619c7 \
-    --hash=sha256:e97264a9dabeaa6db636a1978cf2c9a753ec392f891825b19c0d625f2878118d \
-    --hash=sha256:f85c900f647114cd9f5f9268a31825b74affca4f30c6e9c886474a29c528db86 \
-    --hash=sha256:f9b19c82805e3e07edfd92d4f481f35d11fa49e40320418c648a47119a2b4a0e \
-    --hash=sha256:fff00e3945fc76b03cf1e1106caee500b2a78ef7ee2265e714510042a6f46454
+awscrt==0.16.13 \
+    --hash=sha256:0a310a0c07c46c0f25e8af5f3f68b9e9a5a774a3bfafec3e63507ad5ce8cfdbe \
+    --hash=sha256:194ee9d651e632310964e68f113b641bf1dd84a895b43f9f6c7ccde96d41ab79 \
+    --hash=sha256:2718ece264256db2a66ba478d6798d5431e7b934075f4ee5cdf59a480a93d028 \
+    --hash=sha256:291fe8e97bed9a9a7c7f1706c9db126043d15aa4fa4b454fea915e5645ed526a \
+    --hash=sha256:2a1b69ec1a0e04f6e07870984904f0517de9b82afee976bcdf08412e10e64779 \
+    --hash=sha256:2f7ffe994e5a929b42a6d729d7cb98741a4d99e0a15780e3e9353a2b9888cc65 \
+    --hash=sha256:3bfa1d461bcd43ed61ce76e4cf88a739f585d3cd8e17f789b8ed33da39595b41 \
+    --hash=sha256:42ac0407e6ee7d51089e0ded5924669977daa79b03489926275d2aae957cebff \
+    --hash=sha256:45f0b593e42744df9508c0e7154173c49286ddd040b333e2578e080e65650a21 \
+    --hash=sha256:49d862f0aa38f02294d6443efe14fe51af50248f8edfc2b99cd5c3107affba86 \
+    --hash=sha256:5b887ce774380a2ce9ca09119845f037e2f229efe92527e23a5c6314b2c32115 \
+    --hash=sha256:5e5868ffb8ba6ffe7944bcbd492bc7bc87acdd8dac0bbd074f24ad44568eda91 \
+    --hash=sha256:6c7d1ab45ad9c42f50aac626fefee29f9cdd63df59209d8657275f100f3d782c \
+    --hash=sha256:6f8ad5f687cdbea10345229c7778af8de08acdb3a8c0bad634f5d7710b5e7c47 \
+    --hash=sha256:7727afdf45d6d3e13f9ac0ee5efa0fee0ff5eea357eea3afbb28fdc618b2396e \
+    --hash=sha256:83a5c0c0136900e6c35adbc95003a2c2893524a04947697dec470085dd7ab67b \
+    --hash=sha256:92f3c00a4cd528f4c6401b2b40d774fe084c9689ebd27c9cb694d072853a5a37 \
+    --hash=sha256:95eae388e74cc1fb9b5a2103ab3120a28c379c06a3fb37049873ad2c4d9026f5 \
+    --hash=sha256:980766566f8e806bf13289cd8c11904ba3381cb615423bd96b8c453cc4968a17 \
+    --hash=sha256:984f8c1de67079658e21871fb15b0c95418ca03e3c206defeec47facb43d48cd \
+    --hash=sha256:9c5a257164e1873c17e5f1586b2375e5a294f3a3751f56857e38509b3b1043c7 \
+    --hash=sha256:9d588a7d5fa5e6e24ff476fb0597a402ca533b35073970d109fabb0cc921b82a \
+    --hash=sha256:a769a4958822ee86ab5115a5117ed45c4400565ff92dd891b6b995c5db595551 \
+    --hash=sha256:b0a4a794aaf083f09fa034ca739ae3440430faa5fe69763762b865d66681aedd \
+    --hash=sha256:b7ec07435e178400369024450d118834a1c8b01ccfebe8140b82102fb161720d \
+    --hash=sha256:bb907ef72a1dae9d7fe62d4aecbd4a9f1e835d9de329ef2d10c316b143c3833c \
+    --hash=sha256:bc923c9dce6e69c0f9bb7db743f6a9e7b45d2018622f299f1b410636727bf135 \
+    --hash=sha256:d5a1391284ae89c5030ba1d4eefedc6f3d131d039fb335c1b52bddab88d77b20 \
+    --hash=sha256:e344901ad78c410fcdd258165b692418705a02069ef162accea6e6416a3e0cf9 \
+    --hash=sha256:e40361dceda3d78e1c1b1cb412242dfecd1ea415c77c4b52e26775c725711bb8 \
+    --hash=sha256:e87534fed7e6515fe6e8cf045862e9cb8bf7c74f0ec9deac52c41e40d78d9b03 \
+    --hash=sha256:f33e343ecf33a81c917641bd6d4d36a55468de0ba41e9b9b1ad7ba3960c939bb
     # via awscli (pyproject.toml)
 cffi==1.15.1 \
     --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
diff --git a/requirements/download-deps/system-sandbox-win-lock.txt b/requirements/download-deps/system-sandbox-win-lock.txt
index 83fead319..dacab493a 100644
--- a/requirements/download-deps/system-sandbox-win-lock.txt
+++ b/requirements/download-deps/system-sandbox-win-lock.txt
@@ -4,39 +4,39 @@
 #
 #    pip-compile --generate-hashes --output-file='requirements\download-deps\system-sandbox-win-lock.txt' --unsafe-package=flit-core --unsafe-package=pip --unsafe-package=setuptools --unsafe-package=wheel 'pyproject.toml'
 #
-awscrt==0.16.12 \
-    --hash=sha256:03666624fe49d2b65b199138574406a8764d56c5e200af2c22fcb1593c8f4df8 \
-    --hash=sha256:1370d8e8689cb96b030cdeeda10e8fad086a213752160b907f76af096d0a2e5f \
-    --hash=sha256:1fc32e0ed7b7257148b534067c4dbffb61571974ca49063555205db5b9181dcd \
-    --hash=sha256:35c67e48ad1ade7b03556f06c6ad674e0d21ba64fc7dd4242c2eaf0555ed9d4a \
-    --hash=sha256:3986a456b7b7a00ce602e50ddfaa7218ceb2794ea4961d46286c43b5b358cc10 \
-    --hash=sha256:3d53d68c3c9879469f3f5c252d2d8ec37cee2fc6ad5bcb9be18210d7728a7bc7 \
-    --hash=sha256:3df4f575ebf7c4a62725df3ccda8c80dd89efa3ded7ee5e99f01f8bfc2559e52 \
-    --hash=sha256:603fc43f29c333d2de9a1c3161c723cd3282a221e7eaa76f5d580f206bc197a1 \
-    --hash=sha256:62afcd0e4a2e7d91e69235ad67d7b64caaec75192a1b442442776edd1f451a09 \
-    --hash=sha256:6b946019081052aa039891c7d90348653a3e453bf7c3cdf73e6bc360ee3ed6e1 \
-    --hash=sha256:731425a94953cac07bcc4fd52f9a7df5bfb2a7b3c9f1a4a75ccfdc50ee2c5eec \
-    --hash=sha256:7396435e62b6158891559558f66dd5185c591f4576e689d86c837ed6d7827d41 \
-    --hash=sha256:783f48fdb3d480ac6b7cc1d8e110ae81978e7b7f901fb607e9b5d1bd53c836a5 \
-    --hash=sha256:7f7b16396c409265bcd775749d7a900d693a130b2f1aa1e1f01eaa860dc7ac8b \
-    --hash=sha256:83469aa1108ac78ed2581aff6528109deb017a88dcb12dc2cfbce7a07e973107 \
-    --hash=sha256:8c08565d6ef9ed900dda609385a6882852706ba2629620e9689e3c690bde7824 \
-    --hash=sha256:8db633a3aca74f1e360937b6704237cec56fb70e30f2aaa69741be15b737345f \
-    --hash=sha256:8f17144260e54bf6acc5e638d0974438c1c5c7b08ae84cd70216daa75b64ee6b \
-    --hash=sha256:9a1dd12ee8a7278799104a5adf8f8ce0a65932de3148d6fb36996358aa3952ec \
-    --hash=sha256:9deb086573019cb7d7a37dce8369db1b5e765e7e28c530dbfb7f544ae443377d \
-    --hash=sha256:a42d0f5d517431e621c8580996c35ee96acdc65366ba3f3ee6727401712d3bd8 \
-    --hash=sha256:a92b14537a51894d805e0144e9756f07fc2596a221caa3445e555435aec2e681 \
-    --hash=sha256:bbe8f56c820e5daf5a3c32ad8ec85e32eb189c990d428951a04979397ed82f29 \
-    --hash=sha256:be03dda743f5b13f0f9e80e04fb051fc84bb132f650c5bfd96dbc80be5cbd27d \
-    --hash=sha256:de5834c3ffadc480ffbf597a3576be4ff4e019b689895251d2236bc22ebda57b \
-    --hash=sha256:e263610f91ecfecce0fe42b008672a6f8c345965de2aff3fc686a846ff67c11d \
-    --hash=sha256:e4db83842cf55c39e1151af81a93b1828d85185a5a5a80d78c0bba081ad78919 \
-    --hash=sha256:e5f46be9366e13b871ab417b6e352da83a505b7372f0b200e3b259a0319619c7 \
-    --hash=sha256:e97264a9dabeaa6db636a1978cf2c9a753ec392f891825b19c0d625f2878118d \
-    --hash=sha256:f85c900f647114cd9f5f9268a31825b74affca4f30c6e9c886474a29c528db86 \
-    --hash=sha256:f9b19c82805e3e07edfd92d4f481f35d11fa49e40320418c648a47119a2b4a0e \
-    --hash=sha256:fff00e3945fc76b03cf1e1106caee500b2a78ef7ee2265e714510042a6f46454
+awscrt==0.16.13 \
+    --hash=sha256:0a310a0c07c46c0f25e8af5f3f68b9e9a5a774a3bfafec3e63507ad5ce8cfdbe \
+    --hash=sha256:194ee9d651e632310964e68f113b641bf1dd84a895b43f9f6c7ccde96d41ab79 \
+    --hash=sha256:2718ece264256db2a66ba478d6798d5431e7b934075f4ee5cdf59a480a93d028 \
+    --hash=sha256:291fe8e97bed9a9a7c7f1706c9db126043d15aa4fa4b454fea915e5645ed526a \
+    --hash=sha256:2a1b69ec1a0e04f6e07870984904f0517de9b82afee976bcdf08412e10e64779 \
+    --hash=sha256:2f7ffe994e5a929b42a6d729d7cb98741a4d99e0a15780e3e9353a2b9888cc65 \
+    --hash=sha256:3bfa1d461bcd43ed61ce76e4cf88a739f585d3cd8e17f789b8ed33da39595b41 \
+    --hash=sha256:42ac0407e6ee7d51089e0ded5924669977daa79b03489926275d2aae957cebff \
+    --hash=sha256:45f0b593e42744df9508c0e7154173c49286ddd040b333e2578e080e65650a21 \
+    --hash=sha256:49d862f0aa38f02294d6443efe14fe51af50248f8edfc2b99cd5c3107affba86 \
+    --hash=sha256:5b887ce774380a2ce9ca09119845f037e2f229efe92527e23a5c6314b2c32115 \
+    --hash=sha256:5e5868ffb8ba6ffe7944bcbd492bc7bc87acdd8dac0bbd074f24ad44568eda91 \
+    --hash=sha256:6c7d1ab45ad9c42f50aac626fefee29f9cdd63df59209d8657275f100f3d782c \
+    --hash=sha256:6f8ad5f687cdbea10345229c7778af8de08acdb3a8c0bad634f5d7710b5e7c47 \
+    --hash=sha256:7727afdf45d6d3e13f9ac0ee5efa0fee0ff5eea357eea3afbb28fdc618b2396e \
+    --hash=sha256:83a5c0c0136900e6c35adbc95003a2c2893524a04947697dec470085dd7ab67b \
+    --hash=sha256:92f3c00a4cd528f4c6401b2b40d774fe084c9689ebd27c9cb694d072853a5a37 \
+    --hash=sha256:95eae388e74cc1fb9b5a2103ab3120a28c379c06a3fb37049873ad2c4d9026f5 \
+    --hash=sha256:980766566f8e806bf13289cd8c11904ba3381cb615423bd96b8c453cc4968a17 \
+    --hash=sha256:984f8c1de67079658e21871fb15b0c95418ca03e3c206defeec47facb43d48cd \
+    --hash=sha256:9c5a257164e1873c17e5f1586b2375e5a294f3a3751f56857e38509b3b1043c7 \
+    --hash=sha256:9d588a7d5fa5e6e24ff476fb0597a402ca533b35073970d109fabb0cc921b82a \
+    --hash=sha256:a769a4958822ee86ab5115a5117ed45c4400565ff92dd891b6b995c5db595551 \
+    --hash=sha256:b0a4a794aaf083f09fa034ca739ae3440430faa5fe69763762b865d66681aedd \
+    --hash=sha256:b7ec07435e178400369024450d118834a1c8b01ccfebe8140b82102fb161720d \
+    --hash=sha256:bb907ef72a1dae9d7fe62d4aecbd4a9f1e835d9de329ef2d10c316b143c3833c \
+    --hash=sha256:bc923c9dce6e69c0f9bb7db743f6a9e7b45d2018622f299f1b410636727bf135 \
+    --hash=sha256:d5a1391284ae89c5030ba1d4eefedc6f3d131d039fb335c1b52bddab88d77b20 \
+    --hash=sha256:e344901ad78c410fcdd258165b692418705a02069ef162accea6e6416a3e0cf9 \
+    --hash=sha256:e40361dceda3d78e1c1b1cb412242dfecd1ea415c77c4b52e26775c725711bb8 \
+    --hash=sha256:e87534fed7e6515fe6e8cf045862e9cb8bf7c74f0ec9deac52c41e40d78d9b03 \
+    --hash=sha256:f33e343ecf33a81c917641bd6d4d36a55468de0ba41e9b9b1ad7ba3960c939bb
     # via awscli (pyproject.toml)
 cffi==1.15.1 \
     --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \


Test patch:
diff --git a/tests/unit/customizations/configure/test_importer.py b/tests/unit/customizations/configure/test_importer.py
index d10b5ec05..be319d52c 100644
--- a/tests/unit/customizations/configure/test_importer.py
+++ b/tests/unit/customizations/configure/test_importer.py
@@ -109,6 +109,13 @@ class TestCSVCredentialParser(unittest.TestCase):
         )
         self.assert_parse_matches_expected(contents)
 
+    def test_csv_parser_with_bom(self):
+        contents = (
+            u'\ufeffUser name,Access key ID,Secret access key\n'
+            'PROFILENAME,AKID,SAK\n'
+        )
+        self.assert_parse_matches_expected(contents)
+
     def test_csv_parser_multiple_entries(self):
         contents = (
             'User name,Access key ID,Secret access key\n'
@@ -121,6 +128,18 @@ class TestCSVCredentialParser(unittest.TestCase):
         ]
         self.assert_parse_matches_expected(contents)
 
+    def test_csv_parser_multiple_entries_bom(self):
+        contents = (
+            u'\ufeffUser name,Access key ID,Secret access key\n'
+            'PROFILENAME1,AKID1,SAK1\n'
+            'PROFILENAME2,AKID2,SAK2\n'
+        )
+        self.expected_credentials = [
+            ('PROFILENAME1', 'AKID1', 'SAK1'),
+            ('PROFILENAME2', 'AKID2', 'SAK2'),
+        ]
+        self.assert_parse_matches_expected(contents)
+
     def test_csv_parser_multiple_entries_with_bad_entries(self):
         self.parser.strict = False
         contents = (