Pierre Villard created NIFI-15216:
-------------------------------------

             Summary: Add support for AWS RDS IAM authentication in DBCP 
Connection Pool
                 Key: NIFI-15216
                 URL: https://issues.apache.org/jira/browse/NIFI-15216
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Extensions
            Reporter: Pierre Villard
            Assignee: Pierre Villard


The goal is to add support for AWS RDS IAM Authentication when connecting over 
JDBC to an AWS RDS instance.

[https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.html]

The approach is the following:
 - nifi-standard-services/nifi-dbcp-service-api
 -- Added org.apache.nifi.dbcp.api.DatabasePasswordProvider
 -- Added org.apache.nifi.dbcp.api.DatabasePasswordRequestContext
 - nifi-extension-utils/nifi-dbcp-base
 -- ProviderAwareBasicDataSource wraps commons‑dbcp BasicDataSource and pulls 
passwords from an injected DatabasePasswordProvider
 -- AbstractDBCPConnectionPool expose the new “Database Password Provider” 
property and forward the request context
 - nifi-aws-bundle/nifi-aws-processors
 -- org.apache.nifi.processors.aws.rds.AwsRdsIamDatabasePasswordProvider 
implements the API, uses the existing AWS credentials service, and generates 
IAM auth tokens per connection
 -- pom.xml now depends on nifi-dbcp-service-api (scope provided) so the 
controller service compiles against the shared API
 - nifi-aws-bundle/nifi-aws-nar
 -- Still depends only on nifi-aws-service-api-nar (which already drags in 
nifi-standard-shared-nar → nifi-standard-services-api-nar)

 

Class-loader / NAR chain

  nifi-standard-services-api-nar
      ↳ contains nifi-dbcp-service-api.jar (DatabasePasswordProvider, etc.)

  nifi-standard-shared-nar
      ↳ depends on nifi-standard-services-api-nar

  nifi-aws-service-api-nar
      ↳ depends on nifi-standard-shared-nar (so it inherits the entire 
controller-service API set)

  nifi-aws-nar
      ↳ depends on nifi-aws-service-api-nar
           ↳ transitively inherits nifi-standard-shared-nar → 
nifi-standard-services-api-nar



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to