将敏感凭证放入 AWS 实例的用户数据属性中

将敏感凭证放入 AWS 实例的用户数据属性中

我正在将敏感凭证注入用户数据,但不确定这是否安全。

我正在使用 userdata 属性来运行一个脚本,该脚本在实例上线时将实例加入域

并像这样传递凭据:

$ADUser = 'me'
$ADPassword = 'Pass'
$ADPassword  = $ADPassword | ConvertTo-SecureString -AsPlainText -Force
$ADCred = New-Object System.Management.Automation.PSCredential -ArgumentList $ADUser, $ADPassword

Add-Computer -Credential $ADCred -DomainName mydom.local -NewName testing
Restart-Computer -force

我正在使用New-EC2Instancecmdlet 启动它并将此脚本作为用户数据传递

我的凭据是否会出现在 aws 日志的错误输出中?或者其他地方?凭据在注入 PS 命令之前是安全的,我担心它在 AWS 中的位置。

答案1

不要将凭证和其他敏感数据放入用户数据脚本中。

AWS 文档强调:

重要的

尽管您只能从实例本身内部访问实例元数据和用户数据,但数据不受加密方法的保护。任何可以访问实例的人都可以查看其元数据。因此,您应该采取适当的预防措施来保护敏感数据(例如长效加密密钥)。您不应将敏感数据(例如密码)存储为用户数据。

来源:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

相反,为 EC2 实例创建一个 IAM 角色并授予其执行需要执行的权限。然后将 IAM 角色分配给 EC2 实例。

相关内容