在springboot应用程序中使用IAM Roles Anywhere的凭据过程

iecba09b  于 2023-01-30  发布在  Spring
关注(0)|答案(1)|浏览(137)

我有一个需要从AWS外部访问SNS主题的用例。我们计划使用https://aws.amazon.com/blogs/security/extend-aws-iam-roles-to-workloads-outside-of-aws-with-iam-roles-anywhere/,因为它似乎非常适合
但我无法让这个工作正常.我按照链接完全mentioed以上的内容.aws/config文件是

credential_process = ./aws_signing_helper credential-process
    --certificate /path/to/certificate.pem
    --private-key /path/to/private-key.pem
    --trust-anchor-arn <TA_ARN>
    --profile-arn <PROFILE_ARN>
    --role-arn <ExampleS3WriteRole_ARN>

但是我的spring Boot 应用程序抛出了一个错误,指出它无法获取连接到AWS的凭据。

xt0899hw

xt0899hw1#

我发现最简单的方法是为目标credential_process创建一个单独的脚本,这不是必须的,我只是觉得更容易。
因此,请沿着以下方式创建一个脚本:

#! /bin/bash 
# raw_helper.sh
/path/to/aws_signing_helper credential-process \
  --certificate /path/to/cert.crt \
  --private-key /path/to/key.key \
  --trust-anchor-arn <TA_ARN> \
  --profile-arn <Roles_Anywhere_Profile_ARN> \
  --role-arn <IAM_Role_ARN>

我发现最关键的一点是,大多数地方(包括AWS文档)都告诉你使用~/.aws/config文件并在那里声明配置文件。这似乎不起作用,但当我将配置文件添加到我的~/.aws/credentials文件中时,它确实起作用了。假设你已经创建了一个帮助脚本,它看起来像这样:

# ~/.aws/credentials
[raw_profile]
credential_process = /path/to/raw_helper.sh

相关问题