How to put records into a kinesis stream in another AWS account?

0

Is it possible to put records into a kinesis stream located in another AWS account?

I configured my kinesis producer with an STS assumed role, but I can't see how to specify a stream name in another account (it doesn't accept an ARN, only a stream name).

Init logic:

            AWSCredentialsProviderChain credentialsProvider = new AWSCredentialsProviderChain(
                    DefaultAWSCredentialsProviderChain.getInstance(),
                    new STSAssumeRoleSessionCredentialsProvider.Builder(
                            config.getKinesisStreamRoleArn(),
                            roleSessionName)
                                    .withExternalId(config.getKinesisStreamRoleExternalId())
                                    .build());

            Properties props = new Properties();
            props.load(getClass().getClassLoader().getResourceAsStream("kinesis_producer_config.properties"));
            KinesisProducerConfiguration producerConfig = KinesisProducerConfiguration.fromProperties(props)
                    .setCredentialsProvider(credentialsProvider);

            if (!Strings.isNullOrEmpty(config.getKinesisStreamRegion())) {
                producerConfig.setRegion(config.getKinesisStreamRegion());
            }

            return new KinesisProducer(producerConfig);

and the error:

Encountered AWSError
ResourceNotFoundException
Stream my-stream under account 111111111111 not found.:

(where 111111111111 is the other aws account)

asked 5 years ago2003 views
1 Answer
0

Figured it out; I was creating a AWSCredentialsProviderChain, and including the DefaultAWSCredentialsProviderChain first in the constructor. When I changed the order to include the STSAssumeRoleSessionCredentialsProvider first, it was then able to find the stream in the other AWS account successfully.

answered 5 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions