0

我正在使用Redshift,必須編寫一些自定義腳本來生成報告。我正在使用AWS datapipeline CustomShellActivity運行我的自定義邏輯。我正在使用python和boto3。我想知道什麼是最安全的方式,事實上,在python腳本中提供數據庫密碼的最佳實踐。我確信腳本中的硬編碼密碼不是很好的做法。我還有什麼其他選擇可以探索?如何在AWS Datapipeline中的Python腳本中提供Redshift數據庫密碼?

回答

1

一個非常標準的方法是在安全的S3存儲桶中將store credentials下載並作爲部署/啓動過程的一部分,並使用IAM角色訪問安全存儲桶。對於lambda或datapipeline等有限的運行時情況,您可以在啓動時從S3下載到memory buffer usingboto.Key.get_contents_as_string(),解析文件並設置憑據。

爲了提高安全性,您可以合併KMS secret management。這裏是an example,它將兩者結合在一起。

0

我通常將它們存儲爲環境變量。我不知道關於AWS數據管道的部署,但在一個標準的Linux盒(EC2),你可以這樣做:

# ~/.profile or /etc/profile 
export MY_VAR="my_value" 

然後你就可以像這樣訪問他們的Python:

# python script 
import os 
my_var_value = os.environ['MY_VAR'] if 'MY_VAR' in os.environ else 'default' 
+0

魔法門不是一個好主意,因爲默認情況下訪問服務器授予訪問AWS憑據的權限。 – nightgaunt

相關問題