执行 Redshift 复制命令时获取凭据的最佳实践
Best practice for obtaining the credentials when executing a Redshift copy command
获取从 S3 执行 Redshift 复制命令所需的 AWS 凭证的最佳做法是什么?我正在通过让机器触发复制命令来自动执行从 S3 到 Redshift 的摄取过程。
我知道建议在 ec2 主机上使用 IAM 角色,这样您就不需要存储 AWS 凭证。它如何与 Redshift 复制命令一起工作?我不是特别想要源代码中的凭据。同样,主机由 Chef 提供,因此如果我想将凭据设置为环境变量,它们将在 Chef 脚本中可用。
似乎是推荐的方式(as suggested by an AWS developer) is to use temporary credentials 通过调用 AWS Security Token Service (AWS STS)。
我尚未实施此方法,但这是我希望采用的方法。
您需要凭据才能使用 COPY 命令,如果您的问题是关于如何从您所在的主机获得这些凭据,运行 程序,您可以获得 IAM 角色的元数据并使用访问密钥、秘密密钥和令牌。您可以在 COPY 命令之前对其进行动态参数化,并在 COPY 命令中使用它们。
导出 ACCESSKEY=curl -s http://169.254.169.254/IAMROLE | grep '"AccessKeyId" : *' | cut -f5 -d " " | cut -b2- | rev | cut -b3- | rev
提取密钥并创建参数的命令
导出 SECRETKEY=curl -s http://169.254.169.254/IAMROLE | grep '"SecretAccessKey" : *' | cut -f5 -d " " | cut -b2- | rev | cut -b3- | rev
用于提取令牌并创建参数的命令
导出令牌=curl -s http://169.254.169.254/IAMROLE | grep '"Token" : *' | cut -f5 -d " " | rev | cut -b2- | rev
获取从 S3 执行 Redshift 复制命令所需的 AWS 凭证的最佳做法是什么?我正在通过让机器触发复制命令来自动执行从 S3 到 Redshift 的摄取过程。
我知道建议在 ec2 主机上使用 IAM 角色,这样您就不需要存储 AWS 凭证。它如何与 Redshift 复制命令一起工作?我不是特别想要源代码中的凭据。同样,主机由 Chef 提供,因此如果我想将凭据设置为环境变量,它们将在 Chef 脚本中可用。
似乎是推荐的方式(as suggested by an AWS developer) is to use temporary credentials 通过调用 AWS Security Token Service (AWS STS)。
我尚未实施此方法,但这是我希望采用的方法。
您需要凭据才能使用 COPY 命令,如果您的问题是关于如何从您所在的主机获得这些凭据,运行 程序,您可以获得 IAM 角色的元数据并使用访问密钥、秘密密钥和令牌。您可以在 COPY 命令之前对其进行动态参数化,并在 COPY 命令中使用它们。
导出 ACCESSKEY=curl -s http://169.254.169.254/IAMROLE | grep '"AccessKeyId" : *' | cut -f5 -d " " | cut -b2- | rev | cut -b3- | rev
提取密钥并创建参数的命令
导出 SECRETKEY=curl -s http://169.254.169.254/IAMROLE | grep '"SecretAccessKey" : *' | cut -f5 -d " " | cut -b2- | rev | cut -b3- | rev
用于提取令牌并创建参数的命令
导出令牌=curl -s http://169.254.169.254/IAMROLE | grep '"Token" : *' | cut -f5 -d " " | rev | cut -b2- | rev