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)

gefragt vor 5 Jahren2041 Aufrufe
1 Antwort
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.

beantwortet vor 5 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen