3
votes

When trying to load a text file using the Azure SQL DW Upload Task in SSIS, I get the following error:

Error: 0x0 at Azure SQL DW Upload Task, Azure SQL DW Upload Task: Failed to upload to blob storage. Unable to create Azure Blob container. Endpoint: https://[removed].blob.core.windows.net/, Container Name: [myContainer]. The remote server returned an error: (403) Forbidden. The remote server returned an error: (403) Forbidden

Tthe SSIS task is failing.I also tried the BLOB upload task and that fails. Any help is appreciated.

3

3 Answers

2
votes

For anyone who deosn't want to beat their head against the wall, here was the issue / solution:

I had "PackageProtectionLevel" set to "DoNotSaveSensitive" so I used Package Parameters to configure Password / SecurityToken and then set those as the task values with an expression. SSIS shold have thrown a better error, but at least its solved

1
votes

I had "PackageProtectionLevel" set to "DoNotSaveSensitive" so I used Package Parameters to configure Password / SecurityToken and then set those as the task values with an expression. SSIS shold have thrown a better error, but at least its solved

Kindly elaborate. I tried changing "PackageProtectionLevel", but no luck.

1
votes

Cause

When a client accesses a storage account using a TLS version that does not meet the minimum TLS version configured for the account ( you have configured the minimum TLS version as TLS1.2), Azure Storage returns error code 400 error (Bad Request) and a message indicating that the TLS version that was used is not permitted for making requests against this storage account.

Resolution

The TLS version used by Azure Feature Pack follows system .NET Framework settings. To use TLS 1.2, add a REG_DWORD value named SchUseStrongCrypto with data 1 under the following two registry keys (depend on .net framework version you are using in visual studio- you can find that from help menu in VS):

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v4.0.30319
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319

More information

To test that the minimum required TLS version for a storage account forbids calls made with an older version, you can configure a client to use an older version of TLS. For more information about configuring a client to use a specific version of TLS, see Configure Transport Layer Security (TLS) for a client application in this link.

When you enforce a minimum TLS version for your storage account (your storage account configuration sets the minimum TLS version to TLS 1.2) , you risk rejecting requests from clients that are sending data with an older version of TLS.

Reference documentation