Franz Thoma created FLINK-9686:
----------------------------------
Summary: Flink Kinesis Producer: Enable Kinesis authentication via AssumeRole
Key: FLINK-9686
URL:
https://issues.apache.org/jira/browse/FLINK-9686 Project: Flink
Issue Type: Improvement
Components: Kinesis Connector
Reporter: Franz Thoma
h2. Current situation:
FlinkKinesisProducer can authenticate with Kinesis by retrieving credentials via one of the following mechanisms:
* Environment variables
* System properties
* An AWS profile
* Directly provided credentials (\{{BASIC}})
* AWS's own default heuristic (\{{AUTO}})
For streaming across AWS accounts, it is considered good practise to enable access to the remote Kinesis stream via a role, rather than passing credentials for the remote account.
h2. Proposed change:
Add a new credentials provider specifying a role ARN, session name, and an additional credentials provider supplying the credentials for assuming the role.
Config example for assuming role {{<role-arn>}} with auto-detected credentials:{{}}
{code:java}
aws.credentials.provider: ASSUME_ROLE
aws.credentials.provider.role.arn: <role-arn>
aws.credentials.provider.role.sessionName: my-session-name
aws.credentials.provider.role.provider: AUTO
{code}
{{ASSUME_ROLE}} credentials providers can be nested, i.e. it is possible to assume a role which in turn is allowed to assume another role:
{code:java}
aws.credentials.provider: ASSUME_ROLE
aws.credentials.provider.role.arn: <role-arn>
aws.credentials.provider.role.sessionName: my-session-name
aws.credentials.provider.role.provider: ASSUME_ROLE
aws.credentials.provider.role.provider.role.arn: <nested-role-arn>
aws.credentials.provider.role.provider.role.sessionName: my-nested-session-name
aws.credentials.provider.role.provider.role.provider: AUTO
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)