Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 云信息/用户数据…传递操作系统用户密码而不回显到日志_Linux_Amazon Web Services_Amazon Cloudformation - Fatal编程技术网

Linux 云信息/用户数据…传递操作系统用户密码而不回显到日志

Linux 云信息/用户数据…传递操作系统用户密码而不回显到日志,linux,amazon-web-services,amazon-cloudformation,Linux,Amazon Web Services,Amazon Cloudformation,因此,我试图弄明白,一旦密码从cloudformation传递到操作系统,如何不显示密码。首先,我在我的cloudformation脚本中使用下面的“NoEcho”,我输入的密码开始了 “DBPASS”:{ “NoEcho”:“真的”, “说明”:“oracle用户密码”, “类型”:“字符串”, “最小长度”:“1”, “MaxLength”:“20” }, 然后在我的云结构的用户数据部分,我在下面为oracle用户设置密码。但问题是,用户被回送到boot.log/cloud-init.log

因此,我试图弄明白,一旦密码从cloudformation传递到操作系统,如何不显示密码。首先,我在我的cloudformation脚本中使用下面的“NoEcho”,我输入的密码开始了

“DBPASS”:{ “NoEcho”:“真的”, “说明”:“oracle用户密码”, “类型”:“字符串”, “最小长度”:“1”, “MaxLength”:“20” },

然后在我的云结构的用户数据部分,我在下面为oracle用户设置密码。但问题是,用户被回送到boot.log/cloud-init.log,因此密码是可见的……我试图隐藏密码,以便在日志中看不到它

“DBPASS=”, { “Ref”:“DBPASS” }, “\n”

“echo-e\”$DBPASS\n$DBPASS\“| passwd$oracle\n”

然后我想做下面的事情,但不确定如何将“DBPASS”变量传入输入两次

stty-echo 读取DBPASS 短回声


我的目标是在不回显日志的情况下为oracle用户设置密码…

如果您需要保护敏感信息不被EC2实例读取,那么您根本不应该将其放入用户数据启动脚本,不管它是否作为的一部分存储,因为用户数据脚本将始终作为脚本的一部分可读

请参阅EC2文档部分中的重要注释:

重要

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


作为敏感数据的一种替代方法,您可以将内容上载到私有S3存储桶,然后使用用户数据脚本将其下载到EC2实例。有关此方法的更多详细信息,请参见问题。

如果您需要保护敏感信息,使其不可从EC2实例中读取,那么您根本不应该将其放入用户数据启动脚本,无论它是否作为的一部分存储,因为用户数据脚本将始终作为脚本的一部分可读

请参阅EC2文档部分中的重要注释:

重要

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


作为敏感数据的一种替代方法,您可以将内容上载到私有S3存储桶,然后使用用户数据脚本将其下载到EC2实例。有关此方法的更多详细信息,请参见问题。

您可以从命令行将DB凭据作为参数传递。您需要在启动Cloudformation堆栈时传递这些凭据,但在任何地方都不可见。查看此处,DB参数是从参数中提供的(“默认值”未在参数中设置。因此,您必须在启动cloudformation堆栈时传递它们)

您可以从命令行将DB凭据作为参数传递。您需要在启动Cloudformation堆栈时传递这些凭据,但在任何地方都不可见。查看此处,其中DB参数是从参数中提供的(“默认值”不是在参数中设置的。因此,您必须在启动cloudformation堆栈时传递它们)

添加更多细节将有助于本问题的读者帮助您。我得到的:听起来DBPASS是cloudformation模板的一个参数。听起来您正在使用模板cloudinit部分中的DBPASS参数来配置稍后将使用的用户oracle。您是否尝试过将STDOUT和STDERR从该特定命令重定向到/dev/null?@Mircea是的,我尝试过将STDOUT重定向到/dev/null,用于“DBPASS=”,{“Ref”:“DBPASS”},“\n”,”但是要为oracle用户设置密码,我必须使用echo-e命令…除非有其他方法,否则您可以共享您看到的实际模板和日志吗?(显然删除密码)添加更多细节将有助于此问题的读者帮助您。我得到的:听起来DBPASS是cloudformation模板的一个参数。听起来您正在使用模板cloudinit部分中的DBPASS参数来配置稍后将使用的用户oracle。您是否尝试过将STDOUT和STDERR从该特定命令重定向到/dev/null?@Mircea是的,我尝试过将STDOUT重定向到/dev/null,用于“DBPASS=”,{“Ref”:“DBPASS”},“\n”,”但是要为oracle用户设置密码,我必须使用echo-e命令…除非有其他方法,否则您可以共享您看到的实际模板和日志吗?(请删除密码)