我正在创建一个需要在amazon Redshift上创建模式/表的应用程序。 为此,我必须与特权用户一起运行这些操作。 我不确定在哪里存储其凭据。 我知道对于其他AWA操作,比如S3,我可以调用元数据服务并获取临时凭证,看起来复制命令有这样的东西:
copy table_name
from 's3://objectpath'
credentials 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>';
但我没有为其他命令找到这样的东西。 我在考虑将凭据存储在加密的S3文件中。 这是最好的做法吗?
答案 0 :(得分:2)
我们在EC2实例上使用环境变量来存储Redshift的凭据。代码通过Elastic Beanstalk部署到EC2,其中环境变量易于管理。
EC2计算机运行Python脚本来执行COPY命令和SQL查询以从那里转换数据。
答案 1 :(得分:2)
如果您使用psql运行sql脚本,则可以使用.pgpass文件(请参阅http://www.postgresql.org/docs/8.1/static/libpq-pgpass.html)。凭据未加密,但文件权限被锁定为600,只能由脚本所有者读取。