在SageMaker中隐藏秘密密钥(环境变量?)

时间:2019-11-28 18:15:03

标签: amazon-web-services amazon-ec2 aws-lambda amazon-sagemaker

我曾经在环境变量(.bash_profile)中隐藏连接凭据。最近与SageMaker合作,我尝试使用SageMaker中可用的终端进行类似的过程,但是出现以下错误,

NameError: name 'DB_USER' is not defined

有什么有效的方法可以在SageMaker中隐藏凭据吗?

2 个答案:

答案 0 :(得分:3)

在AWS中处理秘密存储的推荐方法是AWS Secrets Manager。 Secrets Manager以安全的方式将密钥存储为键值对。关键好处是,它允许您通过IAM角色和权限抽象管理对这些机密的访问,并使用您选择的SDK(例如boto3)来检索它们。在third-party git integrations

的情况下,Amazon SageMaker实际上还使用Secrets Manager进行git凭证存储。

答案 1 :(得分:1)

扩展奥利维尔的答案,您可以像这样在部署代码中为Sagemaker端点提供适当的角色

role = 'arn:aws:iam::xxxxxxxxxx:role/service-role/AmazonSageMaker-ExecutionRole-xxxxxxxxxx:role'

sagemaker_model = MXNetModel(model_data = 's3://' + bucket + '/model/model.tar.gz',
                             role = role, 
                             entry_point = 'entry_point.py',
                             py_version='py3',
                             framework_version='1.4.1',
                             sagemaker_session = sagemaker_session)

请记住要在您提供的角色中提供必要的权限