我正在将敏感凭证注入用户数据,但不确定这是否安全。
我正在使用 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-EC2Instance
cmdlet 启动它并将此脚本作为用户数据传递
我的凭据是否会出现在 aws 日志的错误输出中?或者其他地方?凭据在注入 PS 命令之前是安全的,我担心它在 AWS 中的位置。
答案1
不要将凭证和其他敏感数据放入用户数据脚本中。
AWS 文档强调:
重要的
尽管您只能从实例本身内部访问实例元数据和用户数据,但数据不受加密方法的保护。任何可以访问实例的人都可以查看其元数据。因此,您应该采取适当的预防措施来保护敏感数据(例如长效加密密钥)。您不应将敏感数据(例如密码)存储为用户数据。
来源:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
相反,为 EC2 实例创建一个 IAM 角色并授予其执行需要执行的权限。然后将 IAM 角色分配给 EC2 实例。