You now have until September 15th to submit your use case or success story to the 2022 Dataiku Frontrunner Awards!ENTER YOUR SUBMISSION

Documentation for Custom provider class for S3

Huriel
Level 1
Documentation for Custom provider class for S3

Hello,

We are looking to utilize a custom provider class for S3 Credentials on the official S3 connection.  

I can see from the credentials dropdown has an option for Custom credentials with an input: 

  • Custom provider class: Class name of a custom DSS AWS credentials provider

Can you provide documentation on what is needed to create a custom DSS AWS credentials provider?

  • Does Dataiku expect a Java or Python class?
  • Where should this class be placed?
  • What methods do we need to implement?
  • What response are we expected to return?
  • What context details do we have access to from the custom provider class?

 

Thanks!

0 Kudos
1 Reply
pandemite77
Level 1

Hi Hurriel,

I know this is a few months old... but I've just worked through this.

To make it work you need the following:
* Need to grab some of the dataiku jars for some dependencies: ( these are in your install directory )
* dataiku-app-platform.jar (for the com.dataiku.dip.security.AuthCtx)
* dataiku-dip.jar (for the 
com.dataiku.dip.connections.EC2Connection.AWSConnectionCredentialsProvider )
* Next create a jar with a class implementing the com.dataiku.dip.connections.EC2Connection.AWSConnectionCredentialsProvider interface. 
* Make sure to package up the jar with all the required runtime dependencies (but not the dataiku jars as they will already exist. no need to duplicate).
* keep the Jar simple... i.e. don't include anything like springboot etc... (it will clash with the existing jars).
* deploy the jar (with appropriate permissions) to the <dss>/lib/java folder of your installation. (This folder is already on the class path!)
* restart dss.

The AWSConnectionCredentialsProvider essentially has 2 important interfaces. setParams, where you can get the custom paramters setup in the connection. And a 'get' function where you convert your params into a "
EC2Connection.SerializableAWSCredential".
You can look these up in the dataiku-dip.jar. 

Just popluate this will the AWS acessKeyId, secretAccessKey sessiontoken and optionally the expiry time. 

 

0 Kudos