我有两个系统,一个运行 Ubuntu 11.04,一个运行 10.04 LTS。两台机器上的相同配置会产生不同的结果。10.04LTS 机器无法找到我的 AWS 凭证文件。
在 11.04
export | grep EC2
declare -x EC2_CERT="/home/jdw/.ec2/cert-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem"
declare -x EC2_HOME="/opt/ec2-ami-tools-1.3-66634"
declare -x EC2_PRIVATE_KEY="/home/jdw/.ec2/pk-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem"
ls -al /home/jdw/.ec2/
total 16
drwxr-xr-x 2 jdw jdw 4096 2011-08-18 13:31 .
drwxr-xr-x 58 jdw jdw 4096 2011-09-23 10:24 ..
-rw-r--r-- 1 jdw jdw 916 2011-08-18 13:30 cert-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem
-rw-r--r-- 1 jdw jdw 928 2011-08-18 13:30 pk-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem
/usr/bin/ec2-consistent-snapshot --description "Autosnapshot root" vol-283d5246 --region us-west-1 snap-0c679a62
Run Code Online (Sandbox Code Playgroud)
在 10.04 LTS
export | grep EC2
declare -x EC2_CERT="/root/.ec2/cert-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem"
declare -x EC2_HOME="/mnt/ec2-api-tools-1.4.4.2"
declare -x EC2_PRIVATE_KEY="/root/.ec2/pk-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem"
ls -al /root/.ec2
total 16
drwxr-xr-x 2 root root 4096 2011-09-23 10:50 .
drwx------ 8 root root 4096 2011-09-23 10:50 ..
-rw-r--r-- 1 root root 916 2011-09-23 10:11 cert-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem
-rw-r--r-- 1 root root 928 2011-09-23 10:47 pk-PJU5MW2PCN24SKPOIVFTWCMBUXWWZO7U.pem
/usr/bin/ec2-consistent-snapshot --description "Autosnapshot root" vol-283d5246 --region us-west-1 ec2-consistent-snapshot: ERROR: Can't find AWS access key or secret access key at /usr/bin/ec2-consistent-snapshot line 97.
Run Code Online (Sandbox Code Playgroud)
我假设我缺少对 10.04 框的一些依赖,但没有找到它可能是我的运气。我遇到的唯一依赖项是两台机器上都存在的 PERL_MM_USE_DEFAULT=1 cpan Net::Amazon::EC2。
更多信息。
尽管我的环境变量设置正确,但 ec2-consistent-snapshot 似乎在一个名为 .awssecret 的文件中寻找我的密钥
open("/root/.awssecret", O_RDONLY) = -1 ENOENT (没有这样的文件或目录) write(2, "ec2-consistent-snapshot: ERROR: "..., 124) = 124 exit_group(2) = ? ~
似乎从命令行提供凭据会截断凭据名称:
execve("/usr/bin/ec2-consistent-snapshot", ["/usr/bin/ec2-consistent-snapshot", "--aws-access-key-id-file", "/root/.ec2/ cert-PJU5MW2PCN44GRAV"..., "--aws-secret-access-key-file", "/root/.ec2/pk-PJU5MW2PCN44GRAVIV"..., "--description", "Autosnapshot SMC root", " vol-283d5446", "--region", "us-west-1"], [/* 21 vars */]) = 0
我曾尝试为 pem 文件使用较短的名称和名称 .awssecret,这消除了“找不到”条件,但会导致“无法验证凭据”错误。因此,我觉得解决主要错误很可能会解决次要错误。
我很确定这是我的 10.04 系统上缺少的库或某些东西。
我明白混乱是什么了。这在 AWS 上很常见,我第一次阅读您的描述时甚至没有注意到。您在命令行选项中传递了错误的凭据对象。
ec2-consistent-snapshot 程序需要“Access Key ID”和“Secret Access Key”。这些与“证书”和“私钥”完全不同的值,即使它们用于实现相同的目的。
这是我写的一篇文章,试图解释许多不同的凭据以及在哪里可以找到它们:
了解 AWS/EC2 的访问凭证
http://alestic.com/2009/11/ec2-credentials
归档时间: |
|
查看次数: |
1594 次 |
最近记录: |