ListUsers ์์ ์ ํธ์ถํ ๋ A ํด๋ผ์ด์ธํธ ์ค๋ฅ(SignatureDoesNotMatch)๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํ๊ฒฝ ๋ณ์ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION์ ์ค์ ํ์ต๋๋ค.
์์ : ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ํด๊ฒฐ์ ๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๋ฌธ์ ํด๊ฒฐ ๋จ๊ณ๋ฅผ ๋ ์ ๋ณผ ์ ์๋๋ก ์ด ์๊ฒฌ์ ์ ๋ฐ์ดํธํ๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๋ฌธ์ ๊ฐ ์๊ฒฉ ์ฆ๋ช
์์ฒด์ ์๋์ง ์๋๋ฉด CLI์ ์๋์ง ํ์ธํ๋ ๊ฒ์
๋๋ค. ์ด๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋ค๋ฅธ AWS SDK(javascript, ruby, java ๋ฑ)์์ ์ด๋ฌํ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํด ๋ณด์ญ์์ค. ์ด๋ฅผ ๋๊ธฐ ์ํด https://github.com/jamesls/aws-creds-test์์ ์ฌ์ฉํ ์ ์๋ python ๋ฐ javascript์ฉ AWS SDK๋ฅผ ์ฌ์ฉํ๋ ํ
์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ณต์ ํ make install
, make test
. ์๊ฒฉ ์ฆ๋ช
(CLI์ ์ ์ฌ)์ ์
๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๊ณ sts.GetCallerIdentity
API๋ฅผ ํธ์ถํฉ๋๋ค.
/tmp $ mkdir /tmp/repro-cli-602
/tmp $ cd /tmp/repro-cli-602/
/tmp/repro-cli-602 $ git clone git://github.com/jamesls/aws-creds-test
Cloning into 'aws-creds-test'...
...
/tmp/repro-cli-602 $ cd aws-creds-test/
/tmp/repro-cli-602/aws-creds-test (master u=) $ make install
npm install
[email protected] /private/tmp/repro-cli-602/aws-creds-test
โโโฌ [email protected]
...
pip install -r requirements.txt
Requirement already satisfied: botocore<2.0.0,>=1.5.0 in /usr/local/lib/python2.7/site-packages (from -r requirements.txt (line 1))
...
/tmp/repro-cli-602/aws-creds-test (master u=) $ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20
SAK hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK length: 40
Successfuly made an AWS request with the provided credentials.
Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20
SAK hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK length: 40
Sucessfully made an AWS request with the provided credentials.
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ฌ๋๋ค์ ์ํด ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ถ๋ ฅ์ ๊ณต์ ํ์ญ์์ค.
์ด๋ ๊ฒ ํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์น์ ๋ํ ๋ ๋์ ํต์ฐฐ๋ ฅ์ ์ป์ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ง๋ฌธ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
thomas<strong i="6">@iMac</strong>:~ $ echo $AWS_ACCESS_KEY_ID
AKIAXXXXXXXXXXXXXXXX
thomas<strong i="7">@iMac</strong>:~ $ echo $AWS_SECRET_ACCESS_KEY
abcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+0
thomas<strong i="8">@iMac</strong>:~ $ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
env AWS_ACCESS_KEY_ID
env AWS_SECRET_ACCESS_KEY
region eu-west-1 env AWS_DEFAULT_REGION
์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๋ํ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋ด ์๊ฒฉ ์ฆ๋ช ํ์ผ์ด ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Jenkins s3 ํ๋ฌ๊ทธ์ธ์ ๋ด ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ฃ์ ์ ์์ง๋ง aws-cli์์ ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
aws s3 cp s3://my-bucket/folder/test.txt test.txt
A client error (Forbidden) occurred when calling the HeadObject operation: Forbidden Completed 1 part(s) with ... file(s) remaining
aws s3api get-object --bucket my-bucket --key folder/test.txt test.txt
A client error (SignatureDoesNotMatch) occurred when calling the GetObject operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋น๋ฐ์ ๋ง๋ค๋ฉด ๋ค๋ฅธ (AuthFailure) ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
[[email protected]]]$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************AMKA env AWS_ACCESS_KEY_ID
secret_key ****************jPU2 env AWS_SECRET_ACCESS_KEY
region us-west-2 env AWS_DEFAULT_REGION
์ด๊ฒ์ ๋๋ฅผ ์์ ํ ๋ง๊ณ ์์ต๋๋ค. x509 ์ธ์ฆ์๋ฅผ ์ง์ ํ์ฌ ec2-blah-stuff ์ ํธ๋ฆฌํฐ๋ก ๋ช ๊ฐ์ง ์์ ์ ์ํํ ์ ์์ง๋ง ๋์๋ง์๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋๋ค๊ณ ๋์ ์์ผ๋ฏ๋ก ์์กดํ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋๊ฑฐ๋ ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ก์ธ์ค/๋น๋ฐ ํค๊ฐ ์ค์ ๋ก ์ ํจํ์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์๋ํด ๋ณผ ๋ช ๊ฐ์ง:
๋ค๋ฅธ ๋๊ตฌ(์: ec2-describe-instance)์์๋ ์๋ํ์ง ์์ต๋๋ค.
๋๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ์ ํ ๊ถ๋ฆฌ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ํฌ์คํ ์ด์ ์ฉ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด Amazon Linux ์ธ์คํด์ค๋ฅผ ๊ตฌ์ถํ์ผ๋ฉฐ ํจ๊ป ์ ๊ณต๋๋ awscli ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ง๋ง ๋์ผํ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
๋์๊ฒ๋ ๋ฌธ์ ๋ค. ๋์ผํ Dockerfile๋ก ๋น๋๋ ๋์ปค ์ปจํ
์ด๋์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
EC2์์ ๋น๋ํ ๋๋ ์ ๋๋ก ์๋ํ์ง๋ง coreos vagrant box์์ ๋ก์ปฌ๋ก ๋น๋ํ ๋๋ ์๋ํ์ง ์์ต๋๋ค.
์๊ฒฉ ์ฆ๋ช ์์ฒด์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ํ์ธํ์ง๋ง ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. ๋ณด์ ์๊ฒฉ ์ฆ๋ช ํ์ด์ง ์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ํ์ธ
๋ฐฉ๊ธ ๋์๊ฒ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์ผ๋ฉฐ ๋ณด๊ณ ํ์ง ์์์์๋ ๋ถ๊ตฌํ๊ณ ์์คํ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๋จ์ด์ง ๊ฒฐ๊ณผ์์ต๋๋ค. pool.ntp.org์ ๋ํด ntpdate๋ฅผ ์คํํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
env ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ cred๋ฅผ ์ค์ ํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด sudo๋ฅผ ์๋ํ์ญ์์ค.
๊ฐ์ ๋จธ์ ์ ์๋ ๊ฒฝ์ฐ ํธ์คํธ OS ์๊ฐ์ด ๊ฒ์คํธ OS ์๊ฐ๊ณผ ์ผ์นํ๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ค๋ช ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
_lot_์ ํค๊ฐ ์๋ ๋ฒํท์ ๋์ดํ๋ ๋์ ์ข์ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ์ฌ ๋งค์ฐ ์ ์ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ค๋ฅ์ ๋๋ค.
A client error (SignatureDoesNotMatch) occurred when calling the ListObjects operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
๋ค์์ aws configure list
์ถ๋ ฅ์
๋๋ค.
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************4UNA shared-credentials-file
secret_key ****************MNOG shared-credentials-file
region <not set> None None
์ด๋ฌํ ์๊ฒฉ ์ฆ๋ช
์ ๋ค๋ฅธ aws
ํธ์ถ๊ณผ ์ ์๋ํ๋ฉฐ ์ค์ ๋ก ์ด list
์ ์ด ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ ์ ์ค๋ ์๊ฐ(1์๊ฐ ์ด์) ๋์ ์คํ๋ฉ๋๋ค. ๊ฒฐ๊ตญ ์คํจํ ๋ช
๋ น์์ 82,000์ค ์ด์์ ์ถ๋ ฅ์ด ์๋ ํ์ผ์ด ์์ต๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ ์ ์๊ณ ๋ค์ ์๋ํ๋ฉด ์งํ๋ฉ๋๋ค. ์ค๋กํ๋ง๋์ด ์๋ชป๋ ์ค๋ฅ ๋๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐํํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ ๊ณ ํ ์ ์์ต๋๋ค. aws cp foo s3://mybucket/foo/bar๋ฅผ ์ฌ์ฉํ์ฌ 11GB ํ์ผ์ ์ ๋ก๋ํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
A client error (SignatureDoesNotMatch) occurred when calling the UploadPart operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
๊ทธ๋ฆฌ๊ณ
Max retries exceeded with url: /***REDACTED***?partNumber=196&uploadId=B2viwGFF4Lmq5itbs8ipqwBExx0BWGRm3gkG_D5EYTiU8uEO_tmUT.d.i7BcgPnP5npZa.OW7yMfJ3ZhhLJD61zP7EVv.5.ZftCJQbKNdkEBeijGBqWlrxz4vMx3B05Q (Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)
์์คํ ์๊ฐ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ์ต๋๋ค. ๋ํ ์ ๋ก๋ํ๋ ๋์ ๋์ผํ ์์คํ ์์ ์๋นํ ์๋ ์ ํ(http ์์ฒญ ์๊ฐ ์ด๊ณผ ์์ค์์)๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ด ์กฐ์ ๋ฌธ์ ์ธ ๊ฒ์ ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฝ๋๋ค. ๋์ผํ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ์ฌ ์์ ํ์ผ์ ์ ๋ก๋ํ๊ณ ๋์ผํ ์์คํ ์์ ์น ์ฝ์์ ์ฌ์ฉํ๋ ๊ฒ๋ ์ ์๋ํ๋ฏ๋ก aws-cli ๋ฌธ์ ์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
์ด๊ฒ์ aws-cli 1.5.5์์๋ ๋ฐ์ํ์ผ๋ฉฐ aws-cli๋ฅผ 1.6.2๋ก ์ ๋ฐ์ดํธํ๋ฉด ํด๊ฒฐ๋์์ต๋๋ค.
1.6.2์์ ๋์๊ฒ ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ ์ค๋ ๋์๊ฒ ์ผ์ด๋ฌ์ต๋๋ค. ์ด๊ฒ์ ๋์๊ฒ ์๋ก์ด ๊ฒ์ ๋๋ค. ๋ช ๊ฐ์ ๋์ awl-cli๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ฌธ์ ๊ฐ ์์๊ณ ์๊ฒฉ ์ฆ๋ช AFAIK๊ฐ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค.
$ aws configure --profile ye list
Name Value Type Location
---- ----- ---- --------
profile ye manual --profile
access_key ****************ERMQ shared-credentials-file
secret_key ****************E8Id shared-credentials-file
region us-east-1 config-file ~/.aws/config
์ด ๋ฌธ์ ๋ ์ด์ https://github.com/boto/botocore/pull/388 ์ ํตํด ์์ ๋์์ผ๋ฉฐ ๋ค์ AWS CLI ๋ฆด๋ฆฌ์ค์์ ์ ๊ณต๋ ์์ ์ ๋๋ค.
@jamesls ๊ฐ awscli ๋ฒ์ 1.6.4
์์ ์์ ๋์์์ ํ์ธํ์ต๋๋ค. 1.5.4
์์์ต๋๋ค. ๊ฐ์ฌ ํด์!
์๋ก์ด ์ฐ๋ถํฌ ์์คํ ์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
A client error (SignatureDoesNotMatch) occurred when calling the PutObject operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
pip๋ฅผ ํตํด aws-cli๋ฅผ ์ค์นํ์ต๋๋ค.
$ pip list
ansible (1.5.4)
apt-xapian-index (0.45)
argparse (1.2.1)
awscli (1.6.5)
bcdoc (0.12.2)
botocore (0.76.0)
chardet (2.0.1)
Cheetah (2.4.4)
cloud-init (0.7.5)
colorama (0.2.5)
configobj (4.7.2)
docutils (0.11)
html5lib (0.999)
httplib2 (0.8)
Jinja2 (2.7.2)
jmespath (0.5.0)
jsonpatch (1.3)
jsonpointer (1.0)
Landscape-Client (14.01)
MarkupSafe (0.18)
mercurial (2.8.2)
oauth (1.0.1)
PAM (0.4.2)
Pillow (2.3.0)
pip (1.5.4)
prettytable (0.7.2)
pyasn1 (0.1.7)
pycrypto (2.6.1)
pycurl (7.19.3)
Pygments (1.6)
pyinotify (0.9.4)
pyOpenSSL (0.13)
pyserial (2.6)
python-apt (0.9.3.5)
python-dateutil (2.3)
python-debian (0.1.21-nmu2ubuntu2)
PyYAML (3.10)
requests (2.2.1)
roman (2.0.0)
rsa (3.1.2)
setuptools (3.3)
six (1.5.2)
Sphinx (1.2.2)
ssh-import-id (3.21)
Twisted-Core (13.2.0)
urllib3 (1.7.1)
wsgiref (0.1.2)
zope.interface (4.0.5)
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น?
๋ด ํด๊ฒฐ์ฑ
์ ๋ช ์ด ๋์ ์ ์ ์ ๋ค์ ๋ค์ ์๋ํ๋ ๊ฒ์ด์ง๋ง
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋๊ตฌ์ ๋ํ ์
๋ฐ์ดํธ๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
2014๋ 12์ 2์ผ ํ์์ผ ์ค์ 3์ 38๋ถ์ Mark Wolfe [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์๋ก์ด ์ฐ๋ถํฌ ์์คํ ์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
PutObject ์์ ์ ํธ์ถํ ๋ ํด๋ผ์ด์ธํธ ์ค๋ฅ(SignatureDoesNotMatch)๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. ํค์ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
pip๋ฅผ ํตํด aws-cli๋ฅผ ์ค์นํ์ต๋๋ค.
$ ํ ๋ชฉ๋ก
๊ฐ๋ฅํ (1.5.4)
apt-xapian-index (0.45)
argparse (1.2.1)
awscli (1.6.5)
bcdoc (0.12.2)
๋ณดํ ์ฝ์ด (0.76.0)
์ค๋ฅด๋ฐ (2.0.1)
์นํ (2.4.4)
ํด๋ผ์ฐ๋ ์ด๊ธฐํ(0.7.5)
์ฝ๋ก๋ผ๋ (0.2.5)
configobj (4.7.2)
docutils (0.11)
html5lib(0.999)
httplib2 (0.8)
์ง์2 (2.7.2)
jmespath (0.5.0)
jsonํจ์น (1.3)
jsonpointer (1.0)
๋๋์ค์ผ์ดํ ํด๋ผ์ด์ธํธ(14.01)
๋งํฌ์ ์ธ์ดํ(0.18)
์์(2.8.2)
๋งน์ธ(1.0.1)
ํธ (0.4.2)
๋ฒ ๊ฐ(2.3.0)
ํ (1.5.4)
์์ ํ ์ด๋ธ (0.7.2)
pyasn1 (0.1.7)
ํ์ดํฌ๋ฆฝํ (2.6.1)
ํ์ด์ปฌ (7.19.3)
์๋ฃ(1.6)
ํ์ด๋ ธํฐํ์ด(0.9.4)
pyOpenSSL(0.13)
ํ์ด์๋ฆฌ์ผ (2.6)
ํ์ด์ฌ apt (0.9.3.5)
ํ์ด์ฌ-๋ ์ง์ ํธ(2.3)
ํ์ด์ฌ ๋ฐ๋น์(0.1.21-nmu2ubuntu2)
ํ์ดYAML(3.10)
์์ฒญ(2.2.1)
๋ก๋ง์ (2.0.0)
RSA (3.1.2)
์ค์ ๋๊ตฌ(3.3)
์ฌ์ฏ (1.5.2)
์คํํฌ์ค (1.2.2)
SSH ๊ฐ์ ธ์ค๊ธฐ ID(3.21)
ํธ์์คํธ ์ฝ์ด(13.2.0)
urllib3 (1.7.1)
wsgiref (0.1.2)
zope.interface (4.0.5)๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น?
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aws/aws-cli/issues/602#issuecomment -65198065.
@wolfeidau ๊ทธ๋ฆฌ๊ณ ๋ค ์ ๊ฐ ๋๋ฌด ๋นจ๋ฆฌ ๋งํ์ด์. ๋ก์ปฌ์ pip ์ค์น๋ awscli์์ SignatureDoesNotMatch ์ค๋ฅ๊ฐ ๋ค์ ๋ฐ์ํฉ๋๋ค. ์ข์!
A client error (SignatureDoesNotMatch) occurred when calling the DeregisterInstancesFromLoadBalancer operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
The Canonical String for this request should have been
'POST
/
host:elasticloadbalancing.us-east-1.amazonaws.com
user-agent:aws-cli/1.6.5 Python/2.7.8 Darwin/13.4.0
x-amz-date:20141203T015747Z
host;user-agent;x-amz-date
1d9dafbf4bfa9b1225d91bdbf99d8645503484d174b9094e4c3af637e6664b5b'
The String-to-Sign should have been
'AWS4-HMAC-SHA256
20141203T015747Z
20141203/us-east-1/elasticloadbalancing/aws4_request
5a56d12a4920502f4124e37a92aad475c36edda93d9865871e6a4fe1e49045c3'
์ด ๋ฌธ์ ๋ ์์ฒญ์ ์ฌ์๋ํ ๋๋ง ๋ฐ์ํฉ๋๊น? ์๋๋ฉด deregister-instances-from-load-balancer ๋ช ๋ น์ ์คํํ ๋๋ง๋ค ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๊น?
@jamesls ์ง๊ธ์ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค :(
์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ต๋ ์ ์ ๋ชจ๋๋ก ์ ํ๋๋ VM์์ ์คํํ ๋ ์ด ์ค๋ฅ๋ฅผ ๋ณผ ์ ์๋ค๋ ์ฌ์ค์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ Ubuntu๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์คํ ์๊ณ๊ฐ ์ผ๊ด๋๊ฒ ๋ฐ๋ผ์ก์ง ์์ต๋๋ค. ์์ ํ ์๊ฐ์ ์ ๋ฐ์ดํธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค(์: sudo ntpdate -s time.nist.gov).
์๋ ํ์ธ์, ์ด๊ฒ์ ๋ํ ์ต์ข ์์ ์ฌํญ์ด ์์ต๋๊น?
+1
CLI ๋ฒ์ 1.7.8์ ์ฌ์ฉํ์ฌ ๋ค์์ ์๋ํ ๋ ๋์ผํ SignatureDoesNotMatch ์ค๋ฅ๊ฐ ํ์๋์์ต๋๋ค.
$ aws iam list-users
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํ AuthFailure๋ฅผ ์ป์ต๋๋ค.
$ aws ec2 describe-security-groups
๋ด ํค๋ฅผ ์ญ์ ํ๊ณ ์ ํค๋ฅผ ์๋ํ๋ฉด ๋ ๋ช ๋ น์ด ๋ชจ๋ ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ด ๋ฌธ์ ์ ์์ธ์ผ ์ ์๋ ์ค๋๋ ๋น๋ฐ ์ก์ธ์ค ํค์ ๋๋ค. ๋ฐฑ๋ถ์จ, ๋ํ๊ธฐ ๋ฐ ์ฌ๋์ ๋ฌธ์๋ฅผ ํ์ธํ์ญ์์ค. H2J7/oT3Fib15SwFVB1s3EnTCmg+SC7wF7qoP+dw%
:+1: @gsterndale. %
์๋ ์ก์ธ์ค ํค๊ฐ ์๋ํ์ง ์์ต๋๋ค. ์ ํค๋ฅผ ์์ฑํด์ผ ํ์ต๋๋ค.
์ ๋ ์ด ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ฒฝํํ์ต๋๋ค. ํน์ ๋ฌธ์๊ฐ ์๋ ํค๋ฅผ ์ป์ ๋๊น์ง ํค๋ฅผ ๋ค์ ์์ฑํ ๋๋ง๋ค(ํนํ ๋น๋ฐ์ +
๊ธฐํธ์ ๋ฌธ์ ๊ฐ ์์) ํค๊ฐ ์์ ๋์์ต๋๋ค.
์ฌ์ค ๋ด ๋ชจ๋ ์๋ช ํค ๋ฌธ์ ๋ ๋ก์ปฌ mac homebrew ์ค์น ๋์ ์ฐ๋ถํฌ ์์คํ ์์ ๋ช ๋ น์ ์คํํ๋ ๊ฒ์ผ๋ก ์ ํํ์ ๋ ์ฌ๋ผ์ก์ต๋๋ค.
์ ๋ AWS๋ฅผ ์ฒ์ ์ ํ๊ณ node js์์ ๋ฐ๋ก ์ด ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
^
SignatureDoesNotMatch: ๊ณ์ฐํ ์์ฒญ ์๋ช
์ด ๊ทํ๊ฐ ์ ๊ณตํ ์๋ช
๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช
๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์๋ดํ์ธ์
์์ธํ ๋ด์ฉ์ ๋ถ์ฌ์ฅ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด ์์ฒญ์ ๋ํ ํ์ค ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'๊ฒ์ํ๋ค
/
ํธ์คํธ:email.us-west-2.amazonaws.com
x-amz-content-sha256:89cdc817a829111278fbed35aacc694db71669f3845874beaecaf00ff2be1a39
x-amz- ๋ ์ง:20150809T053346Z
ํธ์คํธ;x-amz-content-sha256;x-amz-date
89cdc817a829111278fbed35aacc694db71669f3845874beaecaf00ff2be1a39'
String-to-Sign์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'AWS4-HMAC-SHA256
20150809T053346Z
20150809/us-west-2/ses/aws4_request
0b908b0248bae550b814b37629a418707742416377816b5a5e78e1897b72293e'
+1
๋ชจ๋ aws s3 ๋ช
๋ น(ubuntu 14.04 LTS์ awscli 1.8.6)์ ๋ํด ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์๋ ค์ง ์๋ฃจ์
์ด ์์ต๋๊น? ์๊ฒฉ ์ฆ๋ช
ํ์ผ์ ์ญ์ ํ๊ณ aws configure, ์ฌ๋ถํ
, awscli ์ฌ์ค์น๋ฅผ ์คํํ์ต๋๋ค.
@mcobzarenco , ์ ํค๋ฅผ ์ฌ์ฉํด
@gsterndale ์ด์ ํค์ ์ฌ๋์๊ฐ ์๋ค๋ ์์ ๋๊ธ์ ๋ณด์์ง๋ง ๊ทธ๋ ์ง ์๊ณ ๋ด ํค๊ฐ ์ต๊ทผ์ ์์ฑ๋์์ต๋๋ค(2015๋ 6์). AWS Ubuntu 14.04 LTS์์๋ง ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ด ๋ฉํฑ(14.04)์์ awscli(๋์ผํ ๋ฒ์ )๊ฐ ์ ๋๋ก ์๋ํฉ๋๋ค.
@mcobzarenco ํค์ ์๋๊ฐ ์๋๋ผ ํน์ ๋ฌธ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์๋ ํค๋ฅผ ๋ง๋ค ๋ ํผ์ผํธ, ๋ํ๊ธฐ ๋ฐ ์ฌ๋์ ๋ฌธ์๊ฐ ์์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๋ ๋์ ์ ํค๋ฅผ ์ญ์ ํ๊ณ ๋ง๋ค๋ ค๊ณ ํ์ต๋๋ค. ์ด ์๋ก์ด ๊ฒ๋ค์ ์ด ์ข๊ฒ๋ ์ด๋ฌํ ๋ฌธ์๊ฐ ์์๊ณ ์๋ํฉ๋๋ค.
๋ฐฉ๊ธ ์ฐ๋ถํฌ์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. cli๋ฅผ ํตํด ํค๋ฅผ ์ ๋ ฅํ๋ฉด ~/.aws/config์ ์ ์ฅ๋์ง๋ง '+' ๋ฌธ์๋ ์ ๊ฑฐ๋ฉ๋๋ค. ํ์ผ์ ์๋์ผ๋ก ํธ์งํ์ฌ '+'๋ฅผ ์ถ๊ฐํ๋ฉด ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
@gsterndale ํ ๊ฐ์ฌํฉ๋๋ค. +
ํฌํจ๋์ง ์์ ์ ํค๋ฅผ ์์ฑํ๋ ๊ฒ๋ ํจ๊ณผ๊ฐ ์์์ ํ์ธํ ์ ์์ต๋๋ค. @stebl ์ ์๋ฃจ์
์ ํค ๊ต์ฒด๊ฐ ๋ถํธํ ๊ฒฝ์ฐ์ ์ข์ต๋๋ค.
node js์ ํจ๊ป AWS SDK๋ฅผ ์ฌ์ฉํ ๋๋ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์ธ๊ธ๋ ๊ฒ๊ณผ ๋๊ฐ์ ๋จ๊ณ๋ฅผ ๋ฐ๋์ต๋๋ค.
http://aws.amazon.com/developers/getting-started/nodejs/
AWS SDK๋ ํน์ ๋ฒ์ ์ node js๋ก ๊ฐ๋ฐ๋์์ผ๋ฉฐ node js์ ๋ถ์ผ์น๋ก ์ธํด ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ์, ํน์ ๊ธฐํธ๊ฐ ์๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค(๋ด ํน์ ๊ฒฝ์ฐ์๋ +
).
์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(ํ ์์คํ ์์๋ awscli๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ์ค๋ช ํ ์ ์์ง๋ง ๋ค๋ฅธ ์์คํ ์์๋ ๋์ผํ ์ก์ธ์ค ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ๊ฑฐ๋ถ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํ์์ ์์คํ ์์ iam list-users๋ ์ด SignatureDoesNotMatch ์ค๋ฅ๋ฅผ ์ ๊ณตํ์ต๋๋ค). ๋ฌธ์ ๊ฐ ์๋ ์์คํ ์ ์์คํ ์๊ณ ์๊ฐ์ ์์ ํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
@tukaaa๊ฐ ๋งํ๋ฏ์ด ๋น๋ฐ ์ก์ธ์ค ํค์ ์ํ๋ฒณ์ด ์๋ ๋ฌธ์(์: +)๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ์ด๋๊ฐ๋ก ํ์ถํ๋ ๊ฒ์ด ๋์ ๊ฒ ๊ฐ์์ ;-(
@ebuildy ํ์ฌ ๋ณด๊ณ ์๋ CLI ๋ฒ์ ( aws --version
)์ ํ์ธํ ์ ์์ต๋๊น? ์ด๊ฒ์ด CLI์ ์ด์ ๋ฒ์ ์ด๋ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์งํํ๊ฒ ์ต๋๋ค.
aws-cli/1.9.1 Python/3.5.0 Windows/7 botocore/1.1.8
์ ๋ฐ๊ณ ์์ต๋๋ค.
์ํ๊ฐ ์๋ ๋ฌธ์๊ฐ ์๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์ Windows ์์์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ค๋ฅธ ์์์ ๋์ผํ ๋ถ์ฌ๋ฃ๊ธฐ ๋ฒํผ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ์ค๋ฅ๊ฐ ์๋์ ํ์ธํ์ต๋๋ค. AWS cli๋ฅผ ์ ๊ฑฐ/์ฌ์ค์นํ๊ณ ์๊ฒฉ ์ฆ๋ช /๊ตฌ์ฑ ํ์ผ์ ์ญ์ ํ ๋ค์ aws ๊ตฌ์ฑ์ ๋ค์ ์คํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
aws-cli/1.10.3 Python/2.7.10 Darwin/14.5.0 botocore/1.3.25
์์ ๋ฐฉ๊ธ ๋ดค์ต๋๋ค.
ํน์ ๋ฌธ์ ์์ด ํค๋ฅผ ์ฌ์์ฑํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋ด ๊ฒฝ์ฐ ํน์ ๋ฌธ์๋ FWIW๊ฐ /
์ด๊ณ INI ํ์ผ์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
๋ค์ ์ด์์ต๋๋ค. ์ด์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
@I๋ @gsterndale ์ค๋ช ๋๋์ด ๊ฐ์ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
aws --version
aws-cli/1.10.6 Python/2.7.11 Linux/3.10.0-327.4.5.el7.x86_64 botocore/1.3.28
๊ทธ๋ฌ๋ ๋ด ํค์๋ ํน๋ณํ ๊ธฐํธ๊ฐ ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
s3-cli ๋
ธ๋ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ด ๋น๋ฐ ํค์ [
์์ต๋๋ค.
๋๋ ๋ง์นจ๋ด ๋ฌด์์ด ์๋ชป๋์๋์ง ์์๋๋ค. ์ค์๋ก ํค์ ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๊ฒ ์ด์ ์ผ.
๋ค์ ์๋๋ฆฌ์ค์์ ์ด ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. rhel7๊ณผ ์ฐ๋ถํฌ ๋ชจ๋์์. ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ์ํ๊ฐ ์๋ ๋ฌธ์์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
aws sts assume-role --role-arn <role_name> --role-session-name default --output json --query Credentials > credentials.json
export AWS_ACCESS_KEY_ID=`sed -n 's/.*"AccessKeyId": "\(.*\)"/\1/p' credentials.json`
export AWS_SECRET_ACCESS_KEY=`sed -n 's/.*"SecretAccessKey": "\(.*\)",/\1/p' credentials.json`
export AWS_SESSION_TOKEN=`sed -n 's/.*"SessionToken": "\(.*\)",/\1/p' credentials.json`
--query๊ฐ ์๋ ๋ฌด์ธ๊ฐ๊ฐ ์๊ฒฉ ์ฆ๋ช ์ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ช ๋ น์ ์๋์ผ๋ก ์คํํ๊ณ ๊ฐ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๋ ๊ทธ๋ฐ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ฉด ์ ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Mac(pip๋ฅผ ํตํด ์ค์น)์์ awscli ๋ฒ์ 1.10์ ์คํํ๊ณ Ubuntu(Amazon ์ด๋ฏธ์ง) awscli ๋ฒ์ 1.2.9๋ฅผ ์คํํ ๋๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. aws configure --profile user
๋ ๊ฐ๊ฐ ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ตฌ์ฑ์ ์์ฑํฉ๋๋ค. ๋ฒ์ 1.10์ ๊ตฌ์ฑ ๋ฐ ์๊ฒฉ ์ฆ๋ช
์ ๋ ํ์ผ์ ์์ฑํ์ต๋๋ค. ๋ฒ์ 1.2.9๋ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ์ต๋๋ค(๊ทธ๋ฌ๋ ์๊ฒฉ ์ฆ๋ช
์ ๋ณด ํฌํจ). ๋ฒ์ 1.10์์ ์์ฑ๋ ์๊ฒฉ ์ฆ๋ช
๋ฐ ๊ตฌ์ฑ ํ์ผ์ ์ญ์ ํ๊ณ ๋ฒ์ 1.2.9์์ ์์ฑ๋ ๊ตฌ์ฑ ํ์ผ์ ๋ณต์ฌํ๋ฉด ํน์ ๋ฌธ์๊ฐ ์๊ณ awscli ๋ฒ์ 1.10์ ์คํํ๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ต๋๋ค. ๋ฒ์ 1.2.9์์ ์์ฑ๋ ๊ตฌ์ฑ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[profile FOO0]
aws_secret_access_key = FOO1
aws_access_key_id = FOO2
output = FOO3
region = FOO4
์์ซ์๊ฐ ์๋ ๋ฌธ์๋ก ์ธํ ๊ฒ์์ ํ์ธํ ์ ์์ต๋๋ค.
+๊ฐ ํฌํจ๋ ๋น๋ฐ ํค์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ S3 ๊ณ์ ์ ์์ ์๊ฐ ์๋๋ฉฐ ์ฝ๊ฒ ์ ๊ณ์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ํน์ ๋ฌธ์ ์์ด ์ ํค๋ฅผ ๋ง๋๋ ๊ฒ ์ธ์ ์์ ์ฌํญ์ ์ฐพ์ ์ฌ๋์ด ์์ต๋๊น?
tl;dr ์๋ฃจ์ : aws_secret_access_key์ ์์ซ์๊ฐ ์๋ ๋ฌธ์๊ฐ ํฌํจ๋์ง ์์ ๋๊น์ง ์๊ฒฉ ์ฆ๋ช ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ ์์ฑํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ aws_secret_access_key์ +(๋ํ๊ธฐ ๊ธฐํธ)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๋ฐฉ๊ธ ์๋ก ์ค์นํ์ต๋๋ค ... ๋์ผํ ๋ฌธ์ ... ์ด๊ฒ์ Ubuntu์ ์์ต๋๋ค ... ๋ก์ปฌ OS ๋ฌธ์ ๊ฐ ์๋๋ผ Amazon API ๋ฌธ์ ์ด๋ฏ๋ก OSX์์ ๋ฒ์ด๋๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๋ ๋ค๋ฅธ ์๊ฒฌ์ ๋ฌด์ํ์ญ์์ค
aws ec2 ์ค๋ช ์ธ์คํด์ค
DescribeInstances ์์ ์ ํธ์ถํ ๋ ์ค๋ฅ(AuthFailure)๊ฐ ๋ฐ์ํ์ต๋๋ค. AWS๊ฐ ์ ๊ณต๋ ์ก์ธ์ค ์๊ฒฉ ์ฆ๋ช ์ ํ์ธํ ์ ์์ต๋๋ค.
aws ec2 ์ค๋ช ๋ณด์ ๊ทธ๋ฃน
DescribeSecurityGroups ์์ ์ ํธ์ถํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(AuthFailure): AWS๊ฐ ์ ๊ณต๋ ์ก์ธ์ค ์๊ฒฉ ์ฆ๋ช ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
aws ecr ๋ก๊ทธ์ธ
GetAuthorizationToken ์์ ์ ํธ์ถํ ๋ ์ค๋ฅ(InvalidSignatureException)๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด ์์ฒญ์ ๋ํ ํ์ค ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'๊ฒ์ํ๋ค
/
์ฝํ
์ธ ์ ํ:์์ฉ ํ๋ก๊ทธ๋จ/x-amz-json-1.1
ํธ์คํธ:ecr.us-east-1.amazonaws.com
x-amz- ๋ ์ง:20160615T182955Z
x-amz- ๋์:AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken
์ฝํ
์ธ ์ ํ;ํธ์คํธ;x-amz-๋ ์ง;x-amz-๋์
44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a'
String-to-Sign์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'AWS4-HMAC-SHA256
20160615T182955Z
20160615/us-east-1/ecr/aws4_request
86c2e3c850acd6765a1ca6aa626c6e9a6c85284f3954f45e170f51b5b89961c7'
aws iam ๋ชฉ๋ก ์ฌ์ฉ์
ListUsers ์์ ์ ํธ์ถํ ๋ ์ค๋ฅ(SignatureDoesNotMatch)๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด ์์ฒญ์ ๋ํ ํ์ค ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'๊ฒ์ํ๋ค
/
ํธ์คํธ:iam.amazonaws.com
x-amz- ๋ ์ง:20160615T183516Z
ํธ์คํธ;x-amz-๋ ์ง
b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2'
String-to-Sign์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'AWS4-HMAC-SHA256
20160615T183516Z
20160615/us-east-1/iam/aws4_request
ad9f7581f0bf25ecae56355a6c96b60f3dc3188efbbdb3d0d4806e9f2c5cf8a9'
aws --๋ฒ์
aws-cli/1.10.38 Python/2.7.11+ Linux/4.4.0-22-generic botocore/1.4.28
๊ณ ์์ด /root/.aws/credentials
[๊ธฐ๋ณธ]
aws_access_key_id = AKIAJ7FCEUVVSGX7KZGQ
aws_secret_access_key = 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
Notice the plus sign ( + ) in above aws_secret_access_key !!!!
aws only works when aws_secret_access_key does NOT contain non-alpha chars
ํด๊ฒฐ์ฑ
:
์๋ก์ด ์๊ฒฉ ์ฆ๋ช
์ ์ญ์ ํ๊ณ ์์ฑํ ํ
์ฌ๊ธฐ์ aws_secret_access_key์๋ ๋ํ๊ธฐ ๊ธฐํธ( + )๊ฐ ์์์ต๋๋ค. ๋ชจ๋ ๋ช
๋ น์ด ์ ๋๋ก ์๋ํ๊ธฐ ์์ํ์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค. ํน์ ๋ฌธ์๊ฐ ์์ ๋๊น์ง ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ๋ง๋๋ ๊ฒ์ด ํจ๊ณผ์ ์ด์์ต๋๋ค.
์๊ฒฉ ์ฆ๋ช ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๋ ๋์ ^M ๋ฌธ์๊ฐ ์์ด์ ์ค๋ฅ๋ฅผ ์ผ์ผ์ผฐ์ต๋๋ค.
+
์์ด ๋น๋ฐ ํค๋ฅผ ์ป๋ ๊ฒ๋ ํด๊ฒฐ๋์์ต๋๋ค...
์ฐธ๊ณ - (boot2docker VM'd) ๋์ปค์์ ์ด ๋ฌธ์ ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ VM ์๊ณ๊ฐ ๋๊ธฐํ๋์ง ์์์ ์ ์์ต๋๋ค.
์ฐธ์กฐ: http://stackoverflow.com/questions/24551592/how-to-make-sure-dockers-time-syncs-with-that-of-the-host
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ์์ฑํ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น? ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ์์ ์ฌํญ์ ๋ฌด์์ ๋๊น?
์
๋ฐ์ดํธ: rm -rf .aws/cli/cache/
์คํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ ๋ ์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. ์ญํ ์ ๋งก์ผ๋ ค๊ณ ํ ๋
๋ฒ์ :
aws-cli/1.11.17 Python/2.7.10 Darwin/16.1.0 botocore/1.4.74
ํธ์ง: ์ง๊ธ ๋ค์ ์
๋ฐ์ดํธ๋ฅผ ์๋ํ์ง๋ง ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
aws-cli/1.11.18 Python/2.7.12 Darwin/16.1.0 botocore/1.4.75
์ฐ์ถ:
Assuming role arn:aws:iam::XXXXXXXX:role/XXXX-staging using profile default
An error occurred (SignatureDoesNotMatch) when calling the AssumeRole operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
The Canonical String for this request should have been
'POST
/
host:sts.amazonaws.com
x-amz-date:20161118T102600Z
host;x-amz-date
41db88384d54dc0783e616aa0662ebffce8832b35025195052029a5dc0e33c0e'
The String-to-Sign should have been
'AWS4-HMAC-SHA256
20161118T102600Z
20161118/us-east-1/sts/aws4_request
786b3d624f5aeea9ffcb2b802b177a4c2aebbfed608a2464ee684c6972bc6bc6'
์ต์ (์ต์ ) ๋ฒ์ ์ AWS CLI์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. ๋ฐฉ๊ธ 1.8.3 CLI๋ฅผ 1.11.19๋ก ์ ๊ทธ๋ ์ด๋ํ์ผ๋ฉฐ ๋ด๊ฐ ๋ง๋ ์ ์ฌ์ฉ์/ํค๋ก ๋ช ๋ น์ ์คํํ ์ ์์์ต๋๋ค. ๋น๋ฐ ํค์ ์ํ๋ฒณ์ด ์๋ ๋ฌธ์๊ฐ ์๋ ์์ ์ป๊ธฐ ์ ์ ์ฝ 5๊ฐ์ ํค๋ฅผ ์ฌํ์ฉํด์ผ ํ์ต๋๋ค. ๊ทธ๋ฐ ์์ ์ฐ์ฐํ ๋ฐ๊ฒฌํ๋ฉด CLI๊ฐ ์ ๋๋ก ์๋ํฉ๋๋ค.
๋งค์ฐ ์ฑ๊ฐ์ - Amazon์ด ์ฒ๋ฆฌํ ์ ์๋ ์๋ชป๋ ํค๋ฅผ ์์ฑํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.....
@mpopova-yottaa awe-cli ์บ์๋ฅผ ์์ ํ ์ง์ฐ๋ ค๊ณ ํ์ต๋๊น? ์ ์ฒด ~/.aws
๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํด ๋ณด์ญ์์ค(๊ตฌ์ฑ/์๊ฒฉ ์ฆ๋ช
ํ์ผ์ ๋ณต์ฌ๋ณธ ๋ง๋ค๊ธฐ).
aws ec2 describe-instances
๋ ๋๋ฅผ ์ํด ์คํ๋์ง๋ง ๊ตฌ๋ฆ ํ์ฑ ์คํ์ ๋ง๋ค๋ ค๊ณ ํ ๋:
```์ฐ๋ ๋ "main" com.amazonaws.services.cloudformation.model.AmazonCloudFormationException ์์ธ: ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด ์์ฒญ์ ๋ํ ํ์ค ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'๊ฒ์ํ๋ค
/
amz-sdk-invocation-id:18d13b66-80ae-f676-c0cf-dbf875edb1aa
amz-sdk- ์ฌ์๋:3/345/470
ํธ์คํธ:cloudformation.us-west-1.amazonaws.com
์ฌ์ฉ์ ์์ด์ ํธ:aws-sdk-java/1.11.20 Mac_OS_X/10.10.5 Java_HotSpot(TM)_64-Bit_Server_VM/25.91-b14/1.8.0_91
x-amz- ๋ ์ง:20161127T194448Z
amz-sdk-invocation-id;amz-sdk-retry;host;user-agent;x-amz-date
aca0973fb4ac4029ec038d9c80b4afa23b6d305822b10e6bc32751ee1bd311d5'
String-to-Sign์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
'AWS4-HMAC-SHA256
20161127T194448Z
20161127/us-west-1/cloudformation/aws4_request
cb0286a8727afcc465171ab991accde0aaa7210e160a9ba3196e2a5e4305f428'(์๋น์ค: AmazonCloudFormation, ์ํ ์ฝ๋: 403, ์ค๋ฅ ์ฝ๋: SignatureDoesNotMatch, ์์ฒญ ID: f52abbd9-190-b90)
config details:
`$: aws --version` >> `aws-cli/1.11.21 Python/2.7.12 Darwin/14.5.0 botocore/1.4.78`
`$: aws configure list` >>
``` Name Value Type Location
---- ----- ---- --------
profile not set> None None
access_key ****************RTSA env
secret_key ****************UC3r env
region us-west-1 env AWS_DEFAULT_REGION
๋น๋ฐ ํค๋ ์์ซ์๋ง ํฌํจ๋์ด ์์ด์ ๋งํ์ต๋๋ค.
@aebrow4 awe-cli์ ๋ํ ์บ์๊ฐ ๋ค์ด๋์์ต๋๋ค. ์ญ์ ์๋: .aws/cli/cache/
@cultavix .aws
์์ cli
๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค
--archive-description "`date`"
aws glacier upload-archive
๋ฅผ ์คํํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. --archive-description "`date +%Y/%m/%d`"
ํ๋ฉด ์ ์๋ํ๋ฏ๋ก ํ์ถ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
ฮป aws s3 sync s3://foo-bar-assets/ . --exclude "*/*.mp4" --exclude "*.mp4"
fatal error: An error occurred (SignatureDoesNotMatch) when calling the ListObjects operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
NTP ์๋ฒ์ ์๊ฐ ๋๊ธฐํ๋ฅผ ์๋ํ์ง๋ง(์ฑ๊ณต์ ์ผ๋ก) ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ํน์ ๋ฌธ์๊ฐ ์๋ ์ธํธ๋ฅผ ๊ฐ์ง ๋๊น์ง ํค๋ฅผ ์ฌ์์ฑํ๋ฉด ํด๊ฒฐ๋์์ต๋๋ค.
ฮป aws --version
aws-cli/1.11.16 Python/2.7.9 Windows/8 botocore/1.4.73
awscli ๋ฐ ์ํ Python ์ฝ๋(boto3)๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ ๋ IBM ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง S3 API ํธํ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฒํท๊ณผ ํด๋น ์ปจํ
์ธ ๋ฅผ ๋์ดํ ์ ์์ง๋ง ์
๋ก๋ํ ์๋ ์์ต๋๋ค(pyhton ์ฝ๋ ๋ฐ cli ๋ชจ๋).
ruby aws-sdk
์๋๋ฆฌ์ค๋ฅผ ํ
์คํธํ๋๋ฐ ์ ์๋ํฉ๋๋ค(์
๋ก๋/๋ค์ด๋ก๋).
-- ๊ตฌ์ฑ
aws-cli/1.2.9 Python/3.4.3 Linux/3.19.0-33-generic
Glacier์ ๋ค์ค ํํธ ์ ๋ก๋๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ช ๋ฌ ๋์ ์ฌ์ฉํ ์คํฌ๋ฆฝํธ์์ ์ด์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. aws cli๋ฅผ ํตํด ์ฌ์ ํ ์ ์ ๊ธํ ์ ์์ผ๋ฏ๋ก ์๊ฒฉ ์ฆ๋ช ์ ๊ณ์ ์๋ํ์ง๋ง boto3์ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ๋ ๋ค์๊ณผ ํจ๊ป ์คํจํฉ๋๋ค.
"botocore.exceptions.ClientError: InitiateMultipartUpload ์์ ์ ํธ์ถํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(InvalidSignatureException: ๊ณ์ฐํ ์์ฒญ ์๋ช ์ด ์ ๊ณตํ ์๋ช ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค."
aws --๋ฒ์ ์
aws-cli/1.11.38 ํ์ด์ฌ/2.7.10 ๋ค์/15.6.0 ๋ณดํ ์ฝ์ด/1.5.1
(์, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํ๋ ๋ชจ๋ ๊ฒ์ ์ ๋ฐ์ดํธํ์ต๋๋ค...๊ทธ๋ฐ ํ์ด์ ์์ต๋๋ค.)
ํน์ ๋ฌธ์๊ฐ ์๋ ์ ํค ์์ ๊ฐ์ ธ์ค๋ฉด(์ ๊ฒฝ์ฐ์๋ +
์์ต๋๋ค) ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ฌ๊ธฐ์์ ๋น๋ฐ ํค์์ +
์ ์๋ชป๋ ์ฒ๋ฆฌ์ ๋ํ ๋ ๋ค๋ฅธ ํ์ธ์ด ์์ต๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ๋ค์์ ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐ ์ฌ์ฉํ ์คํฌ๋ฆฝํธ์ ๋๋ค. https://gist.github.com/jamesls/00ef7fcc0ac39ba8b06956d165c42f6d . ์ด๊ฒ์ ์คํฌ๋ฆฝํธ๊ฐ ํ๋ ์ผ์ ๋๋ค:
+
๋๋ /
๋ฌธ์๊ฐ ์๋ ์๊ฒฉ ์ฆ๋ช
์ ์ฐพ์ ๋๊น์ง ๋ฃจํ์์ aws iam create-access-key
๋ฅผ ํตํด ์ access_key/secret_key ์์ ๋ง๋ญ๋๋ค.API ํธ์ถ์ด ์คํจํ ๋๊น์ง ๋ฌดํ ๋ฃจํ์์ ์ด ์์
์ ์ํํฉ๋๋ค. ์ง๊ธ๊น์ง ๋๋ ๊ทธ๊ฒ์ ์คํจํ๊ฒ ๋ง๋ค์ง ๋ชปํ์ต๋๋ค. +
๋ฐ /
๊ฐ ์๋ ๋น๋ฐ ํค๊ฐ ์๋ํฉ๋๋ค.
์ด ์์ ์์ ์ฐ๋ฆฌ๋ +
๋๋ /
๊ฐ ์๋ secret_keys๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์คํ ๊ฐ๋ฅํจ์ ํ์ธํ๊ธฐ ๋๋ฌธ์ ๊ทผ๋ณธ ์์ธ์ด ์๋ช
์ฝ๋์ ๋ฒ๊ทธ๋งํผ ์ง์ ์ ์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. +
๊ฐ ์์ผ๋ฉด ์ค๋จ๋ฉ๋๋ค. ์ด ์ค๋ ๋์ ์ฃผ์์ ๋ค์ ์ฝ์ผ๋ฉด ~/.aws/config
๋๋ ~/.aws/credentials
ํ์ผ์ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค. +
๋๋ /
๋ฅผ ํฌํจํ๋ ๋ฌธ์๋ฅผ ๋ณ๊ฒฝํ๋ ํ๋ซํผ ํน์ ์ฌํญ์ด ์์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฌ์ ํ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์๋ ์ฌ๋์๊ฒ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ์๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค.
aws iam create-access-key
, ์ฝ์์์ CSV ํ์ผ ๋ฑ)?aws configure
์ ์คํ ์ค์ด๊ณ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ๊ฐ์ ์
๋ ฅํฉ๋๊น? aws configure set
๋ฅผ ์คํํ์ฌ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ด ์์
์ ์ํํ๊ณ ์์ต๋๊น? ~/.aws/config
๋ฐ/๋๋ ~/.aws/credentials
๋ฅผ ์๋์ผ๋ก ํธ์งํ๊ณ ์์ต๋๊น? ๋ค์ํ AWS_*
ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์๊ฒ ์ต๋๊น?๊ฐ๋ฅํ๋ค๋ฉด ๋์ฑ ๋์์ด ๋ ๋ณด๋์ค ์ฌํญ:
์ฐ๋ฆฌ ์ธก์์ ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ์ถ๊ฐ ์ ๋ณด๊ฐ ์์ผ๋ฉด ์ข์ต๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ์ง๋ฌธ์ ๋ตํ๋ ค๋ฉด:
Amazon ์ฝ์์์ ์๊ฒฉ ์ฆ๋ช
์ ์์ฑํ๊ณ ~/.aws/credentials์ ์๋ผ๋ด๊ธฐ/๋ถ์ฌ๋ฃ๊ธฐ(Mac์์ emacs๋ก ํธ์ง)
์ง๊ธ๊น์ง ์ํํ ๋ฌธ์ ํด๊ฒฐ์์(๊ทธ๋ฆฌ๊ณ ์ ๋ ์ด ๋ถ์ผ์ ์ด๋ณด์์ ๋๋ค...) 'Canonical String'์ ์ ํํ์ง๋ง 'String-to-Sign'์ ์๋ชป๋์ด ๋ง์ง๋ง ์ค์ด ๋ค๋ฆ ๋๋ค. ์ฆ, auth.py string_to_sign์ ๋ฐํ ๊ฐ์ ์ธ์ํ ๋ 'sha256(canonical_request.encode('utf-8')).hexdigest())'์์ ์์ฑ๋ ์ซ์๊ฐ ๋ฐํ๋ ์ค๋ฅ "The String -to-Sign ์ด์ด์ผ ํฉ๋๋ค." .
๋ด ์๊ฒฉ ์ฆ๋ช ์๋ ํน์ ๋ฌธ์๊ฐ ์์ผ๋ฉฐ CrossFTP(์ฌ์ฉํ๊ณ ์ถ์ง ์์!!!)์ ๊ฐ์ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ ์๋ํฉ๋๋ค.
์ด๋ค ํต์ฐฐ๋ ฅ์ด๋ผ๋ ๋๋จํ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!!
@samato88 ์ ๋ค๋ฅธ ๋ฌธ์ ๋ก ๋ณด์ ๋๋ค. ๋๋ฒ๊ทธ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ฉด(๋ฏผ๊ฐํ ์ ๋ณด๋ ๋ชจ๋ ์ ๊ฑฐํด์ผ ํจ) ๋์์ด ๋ ๊ฒ์ ๋๋ค.
string_to_sign์ secret_access_key์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ์์ฒญ์ ์๋ช ํ ๋ ๋ณด๋ด๋ ค๋ HTTP ์์ฒญ์ ๋ฐ์ ๋ฌธ์์ด(์: ๋ฌธ์์ด ot sign)๋ก ๋ณํํ ๋ค์ ๋น๋ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๋ฌธ์์ด์ ๋น๋ฐ ํค๋ก ์๋ช ํฉ๋๋ค(๋ช ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ). ๋ฐ๋ผ์ ์๋ช ํ ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋ฌธ์ ๋ ์ด ๋ฌธ์ ์ ๋ณ๊ฐ์ ๋๋ค.
๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ด๊ณ --debug
์ถ๋ ฅ์ ์ ๊ณต(๋๋ ์๋น์ค์ ์ ์ฒด ์์ฒญ ๋ฐ ์ค๋ฅ ๋ฉ์์ง ํฌํจ)ํ ์ ์์ต๋๊น? ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค jamesls - ๋ค์ ์์น์์ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด์์ต๋๋ค.
https://github.com/aws/aws-cli/issues/2474
์ด๋ค ํต์ฐฐ๋ ฅ์ด๋ผ๋ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
์์คํ ์๊ฐ์ด 5๋ถ ์ด์ ๊บผ์ง๋ฉด CLI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฅ ์คํ... sudo ntpdate -s time.nist.gov
๊ทธ๋ฐ ๋ค์ ๋ค์ ์๋
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ๋ด ๋น๋ฐ ํค์ "+"๊ธฐํธ๊ฐ ์์ต๋๋ค. .aws/credentials ํ์ผ์ ์ญ์ ํ๊ณ aws configure๋ฅผ ๋ค์ ์คํํ์ต๋๋ค. ๊ทธ ํ ๋ฉ์์ง๋ฅผ ์์ ํ๊ธฐ ์ํด sq queue์ ๋ํ ์ฟผ๋ฆฌ๊ฐ ์๋ํ์ต๋๋ค.
@AlexParra03 ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ๊ทํ์ ์๊ฒฌ์ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด๋์์ต๋๋ค.... :-)
@robotzero ์๊ฒฉ ์ฆ๋ช
์ ์ด๋ป๊ฒ ์
๋ ฅํ๋์ง ๊ธฐ์ตํ์ญ๋๊น? aws configure
์ ์คํํ ๋ค์ ์น ์ฝ์์์ ๊ฐ์ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ํ์ต๋๊น?
์, aws configure๋ฅผ ์คํํ๊ณ ๊ฐ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์์ต๋๋ค.
์, ๋ด ๋น๋ฐ์ +๊ฐ ์์ด์ ์ฌ์ ํ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํน์ ๋ฌธ์ ์์ด ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
aws --๋ฒ์
aws-cli/1.11.78 ํ์ด์ฌ/3.6.1 ๋ค์/15.6.0 ๋ณดํ ์ฝ์ด/1.5.41
๋ด ๋น๋ฐ์๋ +์ /๊ฐ ์์์ต๋๋ค. ์ด๊ฒ๋ค์ด ์๋ ๋น๋ฐ์ ๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๋ํ์ด ๋ฌธ์ ๊ฐ์์์ต๋๋ค.
$ aws --version
aws-cli/1.11.44 Python/3.5.3 Linux/4.10.0-19-generic botocore/1.5.7
$ lsb_release -sd
Ubuntu 17.04
์๊ฒฉ ์ฆ๋ช ์ "+"๊ฐ ์์ต๋๋ค. ์ก์ธ์ค ํค ์์ด ์ก์ธ์ค ํค๋ฅผ ์ฌ์์ฑํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค. ์ฐธ๊ณ ๋ก "/"๋ ์ข์ ๋ฌธ์์ ๋๋ค.
@adityanatraj @shwetapurushe @damienrj ์ฌ๊ธฐ์์ ์ด ์ง๋ฌธ์ ๋ชจ๋ ๋ตํ ์ ์์ต๋๊น? ์ด ์์ ์์ ์ฐ๋ฆฌ๋ ํ๊ฒฝ๊ณผ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ์๊ฒฌ์์ ์ธ๊ธํ๋ฏ์ด +
๋ก ๋น๋ฐ ํค๋ฅผ ์์ฑํด๋ ๋ฌธ์ ๊ฐ ์ฌํ๋์ง ์์ผ๋ฏ๋ก ํ๊ฒฝ ์กฐํฉ ๋ฐ/๋๋ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค.
์ฆ, ์งํ ์ค์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์ฌ๋๋ค๋ก๋ถํฐ ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
@jamesls
์น ์ฝ์์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ณต์ฌํ์ฌ ์๊ฒฉ ์ฆ๋ช ์ ์ป์์ต๋๋ค.
๋ ๊ฐ์ ํ์ผ์ ์๋์ผ๋ก ๋ง๋ค์์ต๋๋ค.
~/.aws/config
[default]
region = us-east-1
output = json
~/.aws/credentials
[default]
aws_access_key_id = ACCESS_KEY_HERE
aws_secret_access_key = SECRET_ACCESS_KEY_THAT_BREAKS_WITH_A_+_SIGN
์ฃ์กํฉ๋๋ค. '+' ๊ธฐํธ๊ฐ ํฌํจ๋ ์ก์ธ์ค ํค๋ฅผ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ ๋ณด๋์ค ์ง๋ฌธ์ ๋์์ ๋๋ฆด ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ๊ฐ ํ์๋์ง ์์ต๋๋ค.
@adityanatraj ๊ฐ์ฌํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋๋ ๋ค์ ๋จ๊ณ๋ ์ด๊ฒ์ด CLI๋ง์ ๋ฌธ์ ์ธ์ง ์๋๋ฉด ์๊ฒฉ ์ฆ๋ช
์์ฒด์ ๋ฌธ์ ์ธ์ง ํ์
ํ๋ ๊ฒ์
๋๋ค. ์ฌ์ ํ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์๋ ์ฌ๋์ด๋ผ๋ฉด ๋ค๋ฅธ AWS SDK์์ ์ด๋ฌํ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํด ๋ณผ ์ ์๋ค๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์
๋๋ค. ์ด๋ฅผ ๋๊ธฐ ์ํด ์ง์ ์ค์ ํ์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฝ๊ฒ ๋ง๋๋ ์ํ repo/script๋ฅผ ํจ๊ป ๋ฃ์์ต๋๋ค. https://github.com/jamesls/aws-creds-test . ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ณ make install
, make test
.
/tmp $ mkdir /tmp/repro-cli-602
/tmp $ cd /tmp/repro-cli-602/
/tmp/repro-cli-602 $ git clone git://github.com/jamesls/aws-creds-test
Cloning into 'aws-creds-test'...
...
/tmp/repro-cli-602 $ cd aws-creds-test/
/tmp/repro-cli-602/aws-creds-test (master u=) $ make install
npm install
[email protected] /private/tmp/repro-cli-602/aws-creds-test
โโโฌ [email protected]
...
pip install -r requirements.txt
Requirement already satisfied: botocore<2.0.0,>=1.5.0 in /usr/local/lib/python2.7/site-packages (from -r requirements.txt (line 1))
...
/tmp/repro-cli-602/aws-creds-test (master u=) $ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20
SAK hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK length: 40
Successfuly made an AWS request with the provided credentials.
Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20
SAK hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK length: 40
Sucessfully made an AWS request with the provided credentials.
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ฌ๋๋ค์ ์ํด ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ถ๋ ฅ์ ๊ณต์ ํ์ญ์์ค.
๊ฐ์ฒด ๋ฉํ๋ฐ์ดํฐ์ ์ ๋์ฝ๋ ๋ฌธ์๊ฐ ์์ ๋๋ง๋ค PutObject ์์ฒญ(C#)์์ ์ด์ ๋์ผํ ์์ธ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค. + ๋ฐ /๊ฐ ์๋ ์ ๋น๋ฐ ํค๊ฐ ์๋ํ์ง ์์ต๋๋ค. ํด๋น ๋ฌธ์ ์์ด ์ ํค๋ฅผ ์์ฑํ๋๋ฐ ์ ๋๋ก ์๋ํฉ๋๋ค.
๊ทํ์ ํ
์คํธ ์คํฌ๋ฆฝํธ๋ Linux์ฉ์ด๊ณ ์ ๋ Windows๋ฅผ ์คํ ์ค์
๋๋ค.
Windows ์
ธ ๋ฐ _aws configure_๋ฅผ ์ฌ์ฉํ์ฌ Control-C ๋ฐ Control-V๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์ฆ๋ช
์ ๋ถ์ฌ๋ฃ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ _aws cp_๋ง ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
์ด๊ฒ๋ ํ ์คํธํ์ผ๋ฉฐ ์์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ๋น๋ฐ ํค์ ๊ธฐํธ๊ฐ ์๋ ํ ์ ์๋ํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๊ณง ํด๊ฒฐ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์๋ํ๋ ์๊ฒฉ ์ฆ๋ช ์ ์ป์ ๋๊น์ง ์๊ฒฉ ์ฆ๋ช ์ ๊ณ์ ์ฌ์์ฑํด์ผ ํ๋ ๊ฒ์ ๊ณ ํต์ค๋ฌ์ด ์ผ์ ๋๋ค!
์ด์ AWS์ ์ง์ ํฐ์ผ์ ์ ์ถํ๋๋ฐ ์ค๋ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๋ฌ ๋ฒ ํ ์คํธํ์ผ๋ฉฐ + ๋ฐ / ๋ชจ๋ ์ด์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๊น? ๋ ์ด์ ์ด ๋ฒ๊ทธ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค.
๋ด Pi์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ต์ awscli(aws-cli/1.11.85 Python/3.4.2 Linux/4.9.24-v7+ botocore/1.5.48)์์ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
root@pi :~# aws s3 ls s3://
ListBuckets ์์
์ ํธ์ถํ ๋ ์ค๋ฅ(SignatureDoesNotMatch)๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช
์ด ์ ๊ณตํ ์๋ช
๊ณผ ์ผ์นํ์ง ์์ต๋๋ค.
Secret Access Key์ ์๋ช
๋ฐฉ๋ฒ์ ํ์ธํ์ธ์. ์์ธํ ๋ด์ฉ์ REST ์ธ์ฆ ๋ฐ SOAP ์ธ์ฆ์ ์ฐธ์กฐํ์ญ์์ค.
ํน์ ๋ฌธ์(+ ๋๋ /)๊ฐ ์๋ ๋น๋ฐ ํค๋ฅผ ์ฌ์ฉํด๋ ์ก์ธ์ค๊ฐ ์๋ํ์ง ์์์ต๋๋ค. ์๊ฐ์ ํญ์ ์ผ์นํ์ง๋ง ๋ถํํ๋ ์ด๊ฒ๋ ๋ฌธ์ ๊ฐ ๋์ง ์์์ต๋๋ค.
".aws/config" ํ์ผ์์ ์ ํจํ ์์ญ(ํ ์คํธ์ฉ์ผ๋ก๋ง ..)์ ์ถ๊ฐํ๋๋ฐ ๊ฐ์๊ธฐ ์๋ํ์ต๋๋ค. ํธํ๋๋ s3 ์คํ ๋ฆฌ์ง(Amazon์ s3 ์๋)๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์
[๊ธฐ๋ณธ]
aws_secret_access_key = ๋ง์ด ํค
aws_access_key_id = MYID
region = us-east-1 <-- ์ด์ ์ "๋๋ฏธ" ๊ฐ์ด ์์์ต๋๋ค.
๋ณด์ด๋ ๊ฒ์ฒ๋ผ ์์ญ์๋ "์ฌ๋ฐ๋ฅธ" ๊ฐ์ด ์์ด์ผ ํฉ๋๋ค. "dummyvalue"์ ๊ฐ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ค์ ๋ณ๊ฒฝํ๋ฉด ์์์ ์ธ๊ธํ ๊ฒ๊ณผ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด์ "us-east-1" ๊ฐ์ผ๋ก ์๋ํฉ๋๋ค!
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ ๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช์ณค๋ค. ๋ํ ๋น๋ฐ ํค์ '+'๊ฐ ์๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํ๊ฒฝ ๋ณ์์ ์๊ฒฉ ์ฆ๋ช ์ด ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ~/.aws/credentials ํ์ผ์ ๋ฃ์ผ๋ฉด(์์ผ๋ก ํธ์งํ์ฌ) ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
[ํธ์ง] ํ๊ฒฝ ๋ณ์๊ฐ dos(vim์ ff=dos)์ฉ์ผ๋ก ํ์ํ๋ ํ์ผ์ ์๋ค๋ ๊ฒ์ ์์์ฐจ๋ ธ์ต๋๋ค. ๋ฐฉ๊ธ .csv ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ํธ์งํ์ฌ ํญ๋ชฉ์ ํ๊ฒฝ ๋ณ์๋ก ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ผ์ 'ff=unix'๋ก ๋ค์ ํฌ๋งทํ๋ฉด ๋ ์ด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. 2์ ์ ์ผํ ์ฐจ์ด์ ์ ์ค ๋ฐํ์ด๋ฉฐ, dos๋ "CR-NL"์ ์ฌ์ฉํ๊ณ ์ ๋์ค๋ "NL"์ ์ฌ์ฉํฉ๋๋ค. ์ ์๊ฐ์๋ ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋ "CR" ๋ฌธ์์์ต๋๋ค.
๋๋, ๊ทธ๋ฆฌ๊ณ ๋ํ "+" ๋ฌธ์ ๋ฅผ ํ์ธ
Mac์ฉ Docker๋ฅผ ์ฌ์ฉํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด Docker๋ฅผ ๋ค์ ์์ํ๊ธฐ๋ง ํ๋ฉด ์์คํ ์๊ฐ ๋ถ์ผ์น๊ฐ ์์ ๋ฉ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๋ค.
๋น๋ฐ์ ํ์ธํ๊ณ ๊ทธ ์์ +/๊ฐ ์์์ต๋๋ค.
์๋ํ๋ ค๋ฉด ํน์ ๋ฌธ์ ์์ด ์ ID ์์ ๋ง๋ค์ด์ผ ํ์ต๋๋ค.
ํน์ ๋ฌธ์๊ฐ ์๋ ํค ์์ ๋ง๋ค ๋๊น์ง ์ ํค ์์ ๋ง๋ค๋ฉด ํด๊ฒฐ๋ฉ๋๋ค. ํน์ ๋ฌธ์(ํนํ +)๋ ~/.aws/credentials์์ ์๋ํ์ง ์์ต๋๋ค.
ํน์ ๋ฌธ์ ์์ด ์์ฑ๋ ํค(ํนํ +
)๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
@eikenb ์ ์ฃผ์์ ๋ฐ๋ผ ํ์ผ ํ์์ ์ง์ ํ๋ ๊ฒ๋ ํธ๋ฆญ์ ์ํํฉ๋๋ค.
ํค๋ฅผ ์ญ์ ํ๊ณ ์ ํค๋ฅผ ๋ง๋๋ ๊ฒ์ด ํจ๊ณผ์ ์ด์์ต๋๋ค.
๋ฐฉ๊ธ ์ด ์ค๋ฅ๋ฅผ ๋ฐ์์ต๋๋ค. GMT์์ 6๋ถ ์ด์ ์ฐจ์ด๊ฐ ๋๋ ์์คํ ์๊ฐ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ฆ์ ์์ ํ์ต๋๋ค.
๋์๊ฒ๋ ๋๋ฌด ๋ฏ์ค๊ณ ๊น๋ค๋ก์ ๋ค.
๋๋ ์ด ๋ฌธ์ ์ ์จ๋ฆํ๊ณ ๊ทธ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฒ ์๋ํ์ต๋๋ค.
์๊ฐ ๊ทธ๊ฒ์ ๊ฐ์๊ธฐ ์๋ํ์ต๋๋ค! ๋๋ ๋๋ผ์ ์ ์๋์ด๋ฅผ ๋ง๋ค์์ง๋ง ์๋ํ์ง ์์์ต๋๋ค. ์ฝ๋ ๋ณ๊ฒฝ ์ธ์๋ ์๋ฌด๊ฒ๋ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ช ์๊ฐ์ ๊ธฐ๋ค๋ ธ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋๋ ์๋ฌด๊ฒ๋ ํ์ง ์์์ง๋ง ์ ์๋ํ์ต๋๋ค. ๋ฏฟ์ ์ ์์ด...
์ฌ์ฉ aws configure
์๋์ฐ 7 I์์ bash ์์์ ๋ด๊ฐ ๋ ์์๋ค ๋ฐ๊ฒฌ aws_secret_access_key
๋ด์์ ๋ผ์ธ .aws/credentials
ํ๊ณ ๋ ๋ฒ์งธ ์ค์ ๋ด๊ฐ ์ฐ๋ ๊ธฐ์ ๋ถํ๋ฅผ ์๋ชป-์
๋ ฅ ๊ฑฐ๋ผ๊ณ ๋ ๊ณณ . ๋ ๋ฒ์งธ ์ค์ ์ญ์ ํ๊ณ ๋ชจ๋ ์๋ํ์ต๋๋ค.
aws-cli/1.11.119 Python/2.7.12 Linux/4.4.0-53-generic botocore/1.5.82
๋ด ํค ๋๋ ๋น๋ฐ์ +๊ฐ ์๋ Linux Mint์์ ์ด ๋ฌธ์ ๋ฅผ ๋ด ๋๋ค.
ํ ์คํธ ์คํฌ๋ฆฝํธ์ ์ถ๋ ฅ:
/aws-creds-test $ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID hash: 36b0df669bfc2fa232f31ada2b40e8f58ec152b0afee875f28b21e32e2d59a30
AKID length: 20
SAK hash: 02b21158d3ab7d2691ceef468951c3b3551704a8eea19ad4a8f59c7be38378f6
SAK length: 40
Error making AWS request: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID hash: 36b0df669bfc2fa232f31ada2b40e8f58ec152b0afee875f28b21e32e2d59a30
AKID length: 20
SAK hash: 02b21158d3ab7d2691ceef468951c3b3551704a8eea19ad4a8f59c7be38378f6
SAK length: 40
Error making AWS request
{ SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
at Request.extractError (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/protocol/query.js:47:29)
at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.',
code: 'SignatureDoesNotMatch',
time: 2017-09-18T20:33:23.951Z,
requestId: '9e62c6c2-9cb0-11e7-9856-a5fd5c3e417d',
statusCode: 403,
retryable: false,
retryDelay: 60.66602455065775 }
Makefile:6: recipe for target 'test' failed
make: *** [test] Error 1
awscli๋ฅผ aws-cli/1.11.154 Python/2.7.12 Linux/4.4.0-53-generic botocore/1.7.12
์
๊ทธ๋ ์ด๋ํ ํ:
$ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID hash: 0cdf83ac8cf800ca46738682ff5a0ab35d94891a568fc6fd9115ecf13dcce542
AKID length: 20
SAK hash: 7ae856b46f3d5cd23b94f60765adbeb13215f6c226a2953ab93eed9e26d51694
SAK length: 40
Error making AWS request: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID hash: 0cdf83ac8cf800ca46738682ff5a0ab35d94891a568fc6fd9115ecf13dcce542
AKID length: 20
SAK hash: 7ae856b46f3d5cd23b94f60765adbeb13215f6c226a2953ab93eed9e26d51694
SAK length: 40
Error making AWS request
{ SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
at Request.extractError (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/protocol/query.js:47:29)
at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.',
code: 'SignatureDoesNotMatch',
time: 2017-09-18T20:43:21.662Z,
requestId: '02ab939a-9cb2-11e7-a1f3-87975b0dbd52',
statusCode: 403,
retryable: false,
retryDelay: 86.52138921193912 }
Makefile:6: recipe for target 'test' failed
make: *** [test] Error 1
๋ฐฉ๊ธ ํค๋ฅผ ๋ค์ ๋ง๋ค์์ต๋๋ค. ์ ํค์๋ ์ฌ์ ํ '+'๊ฐ ํฌํจ๋์ด ์์ง๋ง ์ด์ cli๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ์ฌ์ธ ์ ์๋ค
@DanAbbz92 ์ค์ ๋ก, ๋๋ ์ง๊ธ ๊ฐ์ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค. ์ด์ ํค๊ฐ ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด์ง๋ง ์ ํค๊ฐ ๋์ผํ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์์ ์ผ๋ก ์๋ํ์ต๋๋ค.
์๋ชป๋ ๋ถ์ฌ๋ฃ๊ธฐ ์๋์์ ๋ด ๋น๋ฐ ํค์ ^V๊ฐ ์์์ต๋๋ค. ํค์์ ์๋ชป๋ ๋ฌธ์๋ฅผ ๊ฒ์ฌํ ๋ ๋ ๊ฐ๋ ฅํ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ๋ ๊ฒ์ด ํ๋ช ํ ์ ์์ต๋๋ค. ๋ถํ์ํ ์์ค์ปฌ๋ ์ด์ ์ ๋ฐฉ์งํฉ๋๋ค.
์ด ๋ฌธ์ ๋ 2014๋
์ ๋ณด๊ณ ๋์์ต๋๋ค. ์ค๋์ 2017๋
10์ 26์ผ์
๋๋ค. ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ๋ด ๋น๋ฐ์๋ "+"๊ฐ ์์ต๋๋ค. ์ ํค๋ฅผ ๋ง๋ค์ด ~/.aws/configure์ ๋ฃ์์ต๋๋ค.
Amazon, ์ด ๋ฒ๊ทธ* ๋ฅผ ์์ ํ ๊ณํ์ด ์์ต๋๊น ???
์ค๋ cli๋ฅผ ์ค์นํ๊ณ aws configure
์คํํ ํ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ด ํค์๋ ํน์ ๋ฌธ์๊ฐ ์์์ง๋ง ๋ค์์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
rm -r ~/.aws/
credentials
ํ์ผ์ ๋ค์ ๋ง๋ค๊ณ ์๊ฒฉ ์ฆ๋ช
์ ์๋์ผ๋ก ๋ค์ ์ถ๊ฐํ์ต๋๋ค.tl;dr ๊ทธ๊ฒ์ ๊ป๋ค๊ฐ ๋ค์ ์ผ๋ฉด ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค ยฏ_(ใ)_/ยฏ
Hadoop์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ๊ฒฝ์ฐ: Hadoop 2.8.0์์ ๊ด๋ จ ๋ฒ๊ทธ๊ฐ ์์ ๋์์ต๋๋ค.
" s3:" ์ธ์ฝ๋ฉ๋ ๊ฒฝ์ฐ์๋ Secret Key์ ์ฌ๋์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด URL์ด ๊นจ์ง๋๋ค.
์๋
ํ์ธ์, ์ค๋ ๋๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ก์์ต๋๋ค.
์์์ ์๊ฐ์ด ์๋ชป๋์์ต๋๋ค. ์
๋ฐ์ดํธ ์๊ฐ ํ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค.
๋ ๋ค๋ฅธ "๋๋" ์ถ๊ฐ
2๊ฐ์ '+' ๋ฌธ์๊ฐ ์๊ณ ๋ด Windows VM์ ๋ด .aws/credentials ํ์ผ์์ ์๋ํ๋ ๋น๋ฐ ํค(.NET ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ)๊ฐ ์์์ง๋ง ๋ด MacBook Pro์ brew์์ awscli๋ฅผ ์ค์นํ์ ๋ , .aws ํ์ผ์ ๋ณต์ฌํ์ฌ(ํ์ผ ์ธ์ฝ๋ฉ, ์ค ๋ ํ์ ๋ฑ ํ ์คํธ) SignatureDoesNotMatch๋ก ์คํจํ์ต๋๋ค.
์์ซ์๊ฐ ์๋ ๋น๋ฐ ํค๋ฅผ ์ป์ ๋๊น์ง ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ๋ง๋ค๋ ค๊ณ ์๋ํ์ผ๋ฉฐ ์ด์ Mac์ awscli์์ ์๋ํฉ๋๋ค. ํด๋น ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ๋ด Windows ์ปดํจํฐ๋ก ๋ณต์ฌํ๊ณ .NET ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ์ฌ์ ํ ์๋ํฉ๋๋ค.
๋ ์ปดํจํฐ ๋ชจ๋์์ ์๊ฐ์ ๋ณ๊ฒฝํ์ง ์์์ต๋๋ค(Mac์ ์ด๋ฏธ NTP๋ฅผ ์ฌ์ฉํ๊ณ ์์๊ณ Windows VM์ ์ค์ ์๊ฐ๋ณด๋ค ์ฝ 12๋ถ ๋ฆ๊ฒ ์คํ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค).
brew install awscli๋ก awscli๋ฅผ ์ค์นํ์ต๋๋ค.
๋ฐ aws --version ๋ฐํ: aws-cli/1.14.30 Python/3.6.4 Darwin/16.7.0 botocore/1.8.34
๊ธ์, ๋๋ ์ค๋ ์คํ์ ๋๋ค์ ์ฝ๋๋ฅผ ํธ์ํ๋ค(2018-02-01 15:48 EST with lambda in us-east-1).
์ด์ ์คํ 6์์ ์ฌ๋ฌด์ค์ ๋ชจ๋ ์์คํ
์์ ์๋ช
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ์ค๋ ๋๋ฅผ ํตํด ๋๋์๋ณด๋ฉด: ๋ด ์๋๋ ์ ํํ๊ณ , ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉฐ, ์๊ฒฉ ์ฆ๋ช
์ด 1๋
๋ฏธ๋ง์ด๋ฉฐ, ์์ ๋ฒ์ aws-cli/1.14.30 Python/3.6.4 Darwin/17.4.0 botocore/1.8.34
์ฌ์ฉํ์ฌ ์ค๋ฆฝ๋ ๋ ๋ถํฐ ์๋ํ๊ณ ์์ต๋๋ค(1.14.1์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์๋ํ์ต๋๋ค. 2x ๋ฒ์ , ์ฌ๋ ์์)
์ด๊ฒ์ ์ฝ๊ฐ์ ๋ง๋ผํค
๋์ผํ ๋ฌธ์ ๊ฐ ์๊ณ ํน์ ๋ฌธ์(์: /, + ๋ฑ) ์์ด ์ ํค ์์ฑ์ ํด๊ฒฐํ์ต๋๋ค.
์๊ฒฌ ์
๋ฐฉ๊ธ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ๋ฉํฑ ์๊ณ๋ฅผ ์์ ํ์ฌ ํด๊ฒฐํ์ต๋๋ค. ๋ถ๋ช ํ ๋๋ โโ์๊ฐ์ ๋ฆ์๋ค.
๋ฐฉ๊ธ ์ด ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ผ๋ฉฐ ๋ด ntp ํด๋ผ์ด์ธํธ๊ฐ 10๋ถ ๋ค์ณ์ง ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. ๋๋ ntpdate๋ฅผ ํ๋ค
ํน์ ๋ฌธ์๊ฐ ์๋ ์ก์ธ์ค ํค๋ฅผ ์ป์ ๋๊น์ง ์ก์ธ์ค ํค๋ฅผ ๋ค์ ๋ง๋๋ ๊ฒ์ด ํจ๊ณผ๊ฐ ์์์ ํ์ธํ ์ ์์ต๋๋ค. ์ ๋ง ๋ง๋ ์๋๋ ๋ฒ๊ทธ, ์์ฐ.
์ด๊ฒ์ด ์ค๋ ์ง์๋๋ ๋ฌธ์ ์ด๋ฏ๋ก ํค ์ฌ๊ตฌ์ถ๊ณผ ๊ฐ์ ์ ์ฌ์ ์์ ์ ๋ํ ๋งํฌ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋๋ก ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ํ๋ช ํ์ง ์์๊น์? ๋ฌธ์ ๊ฐ "์, ํค์ ํน์ ๋ฌธ์๊ฐ ์์ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฃ์กํฉ๋๋ค!"๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํ๋ค๋ ๊ฒ์ ํ์ธํ๋ ๊ฒ ๋์ .
aws-cli/1.14.58 Python/2.7.10 Darwin/17.4.0 botocore/1.9.11
aws s3 ls
๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Unknown Signature Version: s3v3.
๋ด ๋งํ ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ํน๋ณํ ์บ๋ฆญํฐ ์์ด ๋น๋ฐ์ ์์ฑํฉ๋๋ค.
aws configure set default.s3.signature_version s3v4
์, ์ด๊ฒ์ ์ฌ์ ํ ๋ฌธ์ ์
๋๋ค. ๋ด ๋น๋ฐ ํค๋ +
๋ฌธ์๋ก ๋๋ฌ๊ณ ๋ด๊ฐ ์ฐพ์ ์์ ์ฌํญ์ด ์์ต๋๋ค. ๋น๋ฐ ํค ๋์ +
๊ฐ ์๋ ์ ํค๋ฅผ ์ฌ์์ฑํ์ผ๋ฉฐ ์ ๋๋ก ์๋ํ์ต๋๋ค.
๋๋์ฒด ์ด๊ฒ ์์ง๋ ๋ฌธ์ ์ผ?
CreateMultipartUpload ์์
์ ํธ์ถํ ๋ ์ค๋ฅ(SignatureDoesNotMatch)๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ณ์ฐํ ์์ฒญ ์๋ช
์ด ์ ๊ณตํ ์๋ช
๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. ํค์ ์๋ช
๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
๋์์ฃผ์ธ์.
๋ด ๋น๋ฐ์ +
๊ธฐํธ๋ก ์์ํ๊ณ ์ค๋๊น์ง์ด ๋ฌธ์ ๊ฐ ์๋์ง์กฐ์ฐจ ๋ชฐ๋์ต๋๋ค. boto3 ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ s3์ ์ก์ธ์คํฉ๋๋ค. ์๊ฒฉ ์ฆ๋ช
์ ์์ ๋ฌธ์์ด๋ก ์ ๋ฌํ ๋๋ ์๋ํ์ง ์์ง๋ง configparser.RawConfigParser()
์ฌ์ฉํ์ฌ config.ini์์ ๋ณ์๋ก ๋ก๋ํ๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค. ๋ฌผ๋ก ๋์ด๋ ์ฒ์์ +
๊ธฐํธ ์์ด ์ ๋น๋ฐ์ ์์ฑํ๋ฉด ์ด ๋ฌธ์ ๋ ํด๊ฒฐ๋ฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๊ฒ์ด (์ด๋ค ์ด์ ๋ก) ๊ณ ์น ์ ์๋ค๋ฉด "+ ๊ธฐํธ๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค. ์ํ๋ ๋ฐฉ์์ผ๋ก ์ก์ธ์คํ๋ ค๋ฉด ์ ๋ฉ์์ง๋ฅผ ์์ฑํ์ญ์์ค"์ ๊ฐ์ ์์ธ ๋ฉ์์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋๋ osx์์ aws cli๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ ํํ์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋น๋ฐ๋ ์์์ต๋๋ค. ๋ด ์๋ณธ ํ์ผ์๋ +
๋ฐ =
๊ฐ ์์๊ณ s3์ cp
ํ์ผ์ ์๋ํ ๋ SignatureDoesNotMatch
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํค๋ฅผ ์ฌ์์ฑํ์ผ๋ฉฐ ์ด์ ์ ์ํธ๋ ์์ซ์ ๋ฌธ์์ด์
๋๋ค. ์ฌ์์ฑ์ด ์๋ํ๋ค๋ ๋ ๋ค๋ฅธ ํ์ธ์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. :์๋ํ๋:
์ด๊ฒ์ด ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ด ๋ฌธ์ (๋น๋ฐ ํค์์ +
๋ฅผ ์ฒ๋ฆฌํ์ง ์์)๋ RHEL5์ ์ด ๋ฒ์ ์์ ์์ฒด์ ์ผ๋ก ๋
ธ์ถ๋ฉ๋๋ค.
aws-cli/1.15.25 Python/3.4.7 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.10.25
๊ทธ๋ฌ๋ Ubuntu์ ์ด ๋ฒ์ ์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-121-generic botocore/1.4.70
2014๋
1์์ ์์ํ์ฌ 2018๋
6์์ ์์ํ์ฌ 4๋
๋๊ฒ SignatureDoesNotMatch
์ค๋ฅ๋ก ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ฅผ ์ํ ์๋ฃจ์
์ ์ฌ๊ธฐ์ ๋ชจ๋ ๋๋ค์ ์๋ฃจ์
๊ณผ ๋์ผํ์ต๋๋ค. ์ด์ ํค์ ์ฝ๋ก :
์ด ์๋ ๊ฒ์ฒ๋ผ ํน์ ๋ฌธ์๊ฐ ์๋ ์ ๋น๋ฐ ํค๋ฅผ ๊ฐ์ ธ์ค๊ณ ์๊ฐ ๋๊ธฐํ๋ฅผ ์๋ํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค. WSL์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
aws-cli/1.15.27 Python/3.6.5 Linux/4.4.0-17134-Microsoft botocore/1.10.27
@gchiu๊ฐ 2017๋ 4์์ ๋งํ ๋ด์ฉ ์ ๋ฐ์ดํธ: 2018๋ 6์์๋ ์ฌ๋์(/) ๋ฌธ์๊ฐ ์๋ ๋น๋ฐ๋ก ์ธํด PHP ํด๋ผ์ด์ธํธ๊ฐ ์๋ํ์ง ์์ ์ ์์ต๋๋ค(์ ๊ฒฝ์ฐ์๋ Windows 10์ PHP 7). _์๋ช ์ด ์ผ์นํ์ง ์์ต๋๋ค_ ์ค๋ฅ. ์ด ์ํฉ์์๋ ๋ ์์ ํ ๋ค๋ฅธ ํค ์์ ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ด๊ฒ๋๋ฌธ์ 30๋ถ์ ๋ ๋นํฉํ์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ฐ๋ผ ํ์ง ์๊ฐ ๋ฑ์ ํ์ธํ์ต๋๋ค. - ๋ชจ๋ ์ข์์ต๋๋ค.
ํ์ฌ์ ์ผ๋ก ~/.aws/credentials
ํ์ผ์ ํต์ ๋ฃ๊ณ ๋ค์ ๋ก๊ทธ์ธ(๋ณธ์ง์ ์ผ๋ก ํ์ผ ์ฌ์์ฑ)ํ๋ฉด ์ง์, ๊ทธ๋ฅ ์๋ํฉ๋๋ค.
์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ๊ถ๊ธํฉ๋๋ค!
ํธ์งํ๋ค:
์ ๊ฒฝ์ฐ์๋ ๋น๋ฐ ํค์ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ๋ชจ๋ ๋๋ถ๋ถ ๋จ์ํ ๋ฌธ์์ด์ด์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ +1, ๋ด ํค๋ =
. /
๋ง ์๊ณ ๋ชจ๋ ๊ฒ์ด ์ ์์ธ ํค๋ฅผ ์ฌ์์ฑํ์ต๋๋ค. ํค๋ฅผ "
ํ์๋ก ๋ฌถ์ผ๋ ค๊ณ ํ์ง๋ง ์์ฉ์ด ์์์ต๋๋ค.
AWS CLI์์ ๊ธฐ๋ํ ์ ์๋ ๊ฒ์ ์๋๋๋ค.
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ด ํค์ /๊ฐ ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋ค๋ ๊ฒ์ ๋ฏฟ์ ์ ์์ต๋๋ค. ์๊ฐ๋ญ๋นํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋๋์ด ๋ฌธ์ ๊ฐ ์์๋ค. ์ฒ์์ ๋ฃจํธ ์ฌ์ฉ์๋ก aws cli๋ฅผ ์ค์นํ ๊ฒฐ๊ณผ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ aws cli๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ฌ ์ฌ์ฉ์์ ํ ํด๋์ ๋ฃจํธ ํด๋์ ์๋ .aws ํด๋๋ฅผ ๋ชจ๋ ์ญ์ ํ ๋ค์ ํ์ฌ ์ฌ์ฉ์๋ก ๋ค์ 'aws configure'๋ฅผ ์คํํ๋ ๊ฒ์ผ๋ก ๋ณด์๋ค.
Ubuntu์์ systemd ํ์ด๋จธ๋ฅผ ์ฌ์ฉํ์ฌ bash ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ด ์ฌ์ฉ์์ ํจ๊ป ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ ๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ด๋จธ๋ (SignatureDoesNotMatch) ์ค๋ฅ๋ฅผ ๊ณ์ ๋ฐ์์ํต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฃจํธ๋ก ์คํ๋๋ ๋ชจ๋ aws ๋ช ๋ น์ ๋ํด (SignatureDoesNotMatch)๊ฐ ์์ฑ๋์๊ณ 'aws configure'๊ฐ ์ ๊ณต๋๋ ์ ๊ฐ์ ์ ์ฅํ์ง ์์์์ ํ์ธํ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฃจํธ 'su -i'๋ก ๋ก๊ทธ์ธํ๊ณ 'cd ~/.aws/'๋ก ๋ณ๊ฒฝํ๊ณ 'sudo rm -r ์๊ฒฉ ์ฆ๋ช '์ผ๋ก ๊ตฌ์ฑ์ ์ ๊ฑฐํ๊ณ 'aws configure'๋ฅผ ๋ค์ ์คํํ์ผ๋ฉฐ ์ด๋ฒ์๋ ์ ๊ฐ ์ ์ฅ๋์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ๋ค์ ์๋ํ์ต๋๋ค!
์ด ๋ฌธ์ ๊ฐ aws-cli/1.15.4 Python/2.7.15rc1 Linux/4.15.0-42-generic botocore/1.12.8์ ์ฌ์ ํ ์กด์ฌํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
An error occurred (SignatureDoesNotMatch) when calling the <whatever> operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
๊ทธ๋ฆฌ๊ณ ๋ด ๋น๋ฐ์ +
๊ฐ ์์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๋๋ ํ์ํ๊ณ ์ด์ ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ์ธ์ ์ด @jamesls์ ๋ํ ์์ ์ ๊ธฐ๋ํ ์ ์์ต๋๊น? ์๋๋ฉด ์ ๊ฐ ๋์ธ ์ ์๋ ์ผ์ด ์์ต๋๊น?
๋น๋ฐ ํค์ +
๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ด aws cli์์ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ํด๊ฒฐ๋์์ต๋๋ค.
๋ด 2์ผํธ. ๊ฐ์ ๋์ ์์ฑ์ ์ง์ ๋ ๋๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ ์ ์ก์ ์ฌ์ฉํ์ฌ s3์ ์ฝํ
์ธ ๋ฅผ ์
๋ก๋ํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(๊ณผ๊ฑฐ์๋ ์๋ํ์): --endpoint-url http://imaat.s3-accelerate.amazonaws.com
( --endpoint-url http://<bucket-name>.s3-accelerate.amazonaws.com
) :
๊ณต์ ๋ฌธ์์ ์ง์นจ์ ๋ฐ๋ผ: https://docs.aws.amazon.com/es_es/AmazonS3/latest/dev/transfer-acceleration-examples.html ๋ง์ง๋ง ๋ถ๋ถ์ --endpoint-url http://s3-accelerate.amazonaws.com
๋ก ๊ต์ฒดํ๊ณ ๋ช
๋ น์ ์คํํฉ๋๋ค. aws configure set s3.addressing_style virtual
ํธ์คํธ ์ด๋ฆ์ ๋์ ์ผ๋ก ๋น๋ํฉ๋๋ค. ํ์ธ: https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#addressing -style
์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด์ ์๋ํฉ๋๋ค. ๋ด ๋ฒํท ์ด๋ฆ("imaat")์๋ DNS ์คํจ๋ก ์ด์ด์ง ์ ์๋ ํน์ ๋ฌธ์๊ฐ ์์ง๋ง ์ต์ cli ์ ๋ฐ์ดํธ์์ ์ด๋ค ์ด์ ๋ก ์คํจํ์ต๋๋ค.
ํ ์คํธ ํธ์ง์ ํตํด ํ๋กํ์ ์ถ๊ฐํ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. aws ๊ตฌ์ฑ ์ธํธ ๋ฅผ ํตํด ํ๋กํ ์ก์ธ์ค ID์ ๋น๋ฐ์ ์ ๋ฐ์ดํธํ๋ฉด ์๋ํ์ต๋๋ค. ์ด๊ฒ์ '+'๊ฐ ์๋ ๋น๋ฐ์ฉ์ด๋ฉฐ aws-cli/1.16.23 Python/2.7.15 Windows/10 botocore/1.12.13
@dave-miles ๋น์ ์ ๋ญ๊ฐ๋ฅผํ๊ณ ์์ต๋๋ค, ์๊ฒฌ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์๋์์ ๊ทํ์ ๋ฐ๊ฒฌ์ ํ์ฅํ๊ณ ์์ต๋๋ค.
์ผ๋ถ ๋์ปค ์ด๋ฏธ์ง์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๋ ~/.aws/credentials ํ์ผ์ ์ปจํ ์ด๋์ ์ถ๊ฐํ๊ธฐ ์ํด dockerfile์์ ADD๋ฅผ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด s3์์ ๋ค์ด๋ก๋ํ๋ ค๊ณ ํ ๋ SignatureDoesNotMatch ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
dockerfile์์ ADD ์ค์ ์ ๊ฑฐํ๊ณ ์ ๋์ปค ์ปจํ
์ด๋๋ฅผ ๋ค์ ๋น๋ํ๊ณ ์์ํ์ต๋๋ค. ์ด ์ ์ปจํ
์ด๋์์ aws configure set aws_access_key_id <access key id goes here>
๋ฐ aws configure set aws_secret_access_key <secret access key goes here>
์๋์ผ๋ก ์คํ ํ์ต๋๋ค. ์ด๊ฒ์ ์ด ์ปจํ
์ด๋์ ์๊ฒฉ ์ฆ๋ช
์ ๋ณด๋ฅผ ์ฒ์ ์
๋ ฅํ๋ ๊ฒ์ด์์ต๋๋ค (IE ์ปจํ
์ด๋๋ "์ ์ ํ" centos ์ด๋ฏธ์ง์์ต๋๋ค).
aws configure set
๋ช
๋ น์ ์ฌ์ฉํ ํ s3์์ ์ฑ๊ณต์ ์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์์์ต๋๋ค.
dockerfile๊ณผ ํจ๊ป ์ด๊ฒ์ ์ฌ์ฉํ๋ ์ฌ๋์ dockerfile์์ RUN ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ ๋ช ๋ น์ ์คํํ๊ฑฐ๋ ADD ๋ฌธ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ปค ์ปจํ ์ด๋์ ํธ์ํ ์ ์์ต๋๋ค.
#!/bin/sh
aws ๊ตฌ์ฑ ์ธํธ aws_access_key_id _access-key-id-goes-here_
aws ์ค์ aws_secret_access_key _secret-access-key-goes-here_
@villasenor ์ ๊ฐ์ ๋ฌธ์ ๊ฐ +
๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํค๋ฅผ ํ์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ด์ง๋ง ์ก์ธ์ค ํค๋ ๋น๋ฐ ํค์๋ ํน์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
๋์ผํ IAM ์ฌ์ฉ์์ ๋ํด ์ ์ธํธ๋ฅผ ์ฌ์์ฑํ๊ณ ์ ์ธํธ๋ ๋ฒํท์ ๋์ดํ ์ ์์ง๋ง ์ด์ ์ธํธ๋ ๋์ดํ ์ ์์ต๋๋ค.
์ด๋ AWS cli ๋ฐ Java SDK ํธ์ถ ๋ชจ๋์์ ๋ฐ์ํ์ต๋๋ค. ๊ณ ๊ฐ์ ์๋ชป์ด ์๋๋ผ๋ ์ฃผ์ฅ...
๋ ์ธํธ ๋ชจ๋ ์์ง ๋ผ์ด๋ธ์ ๋๋ค. ์๋ง์กด์ ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ํ๋ ์ฌ๋์ด ์์ผ๋ฉด ์ฐ๋ฝํ์ญ์์ค.
์ ๋๋ฃ๋ ๋ฐฉ๊ธ ์ด๊ฒ์ ๊ฒช์์ต๋๋ค. ์ฒ์์ + ๋๋ /๊ฐ ์๋ ์ก์ธ์ค ํค๋ฅผ ์ป์ ๋๊น์ง ์ก์ธ์ค ํค๋ฅผ ๋ง๋ค์ด ๋๋ฒ๊น ์ ์๋ํ์ต๋๋ค. ๊ทธ๋๋ ๋ฐ์ฑํ ์๋ ์์๋ค.
์ง์ฅ๋๋ฃ๊ฐ ์ด๋ฐ ๊ฒฝํ์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ๋น๋ฐ ํค์ + ๋๋ /์ ํจ๊ป ํนํ Ubuntu 18.04์์ ๋ฐ์ํ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค.
ํ์ฌ Windows 10์ ์ฌ์ฉํ๋ ์ค์ ์ค๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ฉํฑ(Mac)์์ ๋์ผํ ์ก์ธ์ค ํค๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ WSL ๋ด์์ ์ก์ธ์ค ํค๋ฅผ ์๋ํ์ง๋ง ๊ด์ฐฎ์ต๋๋ค. ์ด์ ๊ฐ ํ์คํ์ง ์์ผ๋ฉฐ aws ํค์ ํน์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
ํ ์ธํธ์ ์ก์ธ์ค ํค์์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋ค๋ฅธ ์ธํธ์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋ฌ ๊ฒ์๋ฌผ์์ ์ธ๊ธํ๋ฏ์ด ์ฌ๊ธฐ ๋ด ํค๋ '/'์
๋๋ค. ๋์๊ฒ ์ด ๋ฌธ์ ๋ RFC URI ์ธ์ฝ๋ฉ ํ์ค์ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉ/๋์ฝ๋ฉํ๊ณ ๋ค๋ฅธ ํ๋๋ ์ฌ์ฉํ์ง ์๋ ์๋ฒ ๋๋ ํด๋ผ์ด์ธํธ์ ๊ฐ๋จํ ๋ฌธ์ ์ฒ๋ผ ๋ณด์
๋๋ค.
์ธ๊ธ๋ ํ
์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ค๋ฅ๋ฅผ ์ฌํํ ๊ณํ์
๋๋ค.
์ฌ๊ธฐ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง ~/.aws ํด๋์ ์๋ชป๋ ์๊ฒฉ ์ฆ๋ช ์ด ์บ์๋์์ต๋๋ค. ๋จผ์ ๊ฑฐ๊ธฐ์์ ์ฐพ๊ณ ๋ ๋ฒ์งธ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐพ์ต๋๋ค.
Git Bash๋ฅผ ์ฌ์ฉํ์ฌ Windows 10์์ ์ด๊ฒ์ ๊ฒฝํํ๊ณ ์์ต๋๋ค. Powershell๊ณผ ์ ์๋ํฉ๋๋ค. Python ํธ์ถ์ obv๊ฐ ๋ค๋ฅด์ง๋ง ๋์ผํ Python ๋ฐ Python ๋ชจ๋์
๋๋ค. ๋ด ํค์ +
๋ฐ /
์์ต๋๋ค.
๋ฐฉ๊ธ์ด ๋ฌธ์ ๊ฐ ์์๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์์ต๋๋ค. ์์.
๊ธฐ๋ณธ๊ฐ ๋์ :
[profilename]
aws_access_key_id = MYAWSACCESSKEYID
aws_secret_access_key = MYAWSSECRETACCESKEY
๋๋ ๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟจ๋ค:
[profilename]
aws_access_key_id=MYAWSACCESSKEYID
aws_secret_access_key=MYAWSSECRETACCESKEY
= ์ฃผ์์ ๊ณต๋ฐฑ์ด ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ์ด๊ฒ์ ๋๋ฅผ ์ํด ๊ณ ์ณค๊ณ ๋ด ํค์๋ + ๋ฐ /๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋ฉ์ง ๋ฌธ์ ํด๊ฒฐ ํ์ด ์์ต๋๋ค. CLI ์ฌ์ฉ์ ๊ฐ์ด๋์ ๋ฌธ์ ํด๊ฒฐ ์น์ ์ ์๋ ํ์ด์ง๋ก ์ ํํ๊ฒ ์ต๋๋ค. ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ฌ๊ธฐ์ ๋ง์ ๋ต๋ณ์ด ์์์ ์ ์ ์์ง๋ง ์ ์๊ฒ๋ AWS Secret Access Key์ ํน์ ๋ฌธ์์์ต๋๋ค. ๊ด์ฐ์ "=+"๋ก ์์ํ์ง๋ง ์น ์ฝ์์์ ํน์ ๋ฌธ์ ์์ด ์ ํญ๋ชฉ์ ์์ฑํ์ ๋ ์ฆ์ ์๋ํ๊ธฐ ์์ํ์ต๋๋ค.
Windows์ Ubuntu์์ Zsh ์ ธ์์ awscli๋ฅผ ์คํํ๊ณ ์์ต๋๋ค.
jonathan<strong i="8">@SurfaceBook</strong> ๎ฐ ~ ๎ฐ aws --version
aws-cli/1.16.216 Python/2.7.12 Linux/4.4.0-17134-Microsoft botocore/1.12.206
๋๋ ์ด๊ฒ์ด ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ฌ ํด์
ํ์ฅ
์ด ์ค๋ ๋๋ฅผ ์ฐพ์ ๋๊น์ง 4์๊ฐ ๋์ ๋๋ฒ๊น
์ ๋ชฐ๋ํ์ต๋๋ค. s3 cli๋ฅผ ๋ฌธ์ ์์ด ๋ก์ปฌ๋ก ์ฌ์ฉํ ์ ์์ง๋ง circleci์์ ์คํํ ๋ SignatureDoesNotMatch
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ด ๋น๋ฐ ์ก์ธ์ค ํค์ +
๋ฌธ์๊ฐ ํฌํจ๋์ด ์๋ค๊ณ ์ ์ํ์ผ๋ฉฐ ์ ํค๋ฅผ ์์ฑํ ํ ๋ชจ๋ ๊ฒ์ด ์๋ํ๊ธฐ ์์ํ์ต๋๋ค.
์ด ์ค๋ ๋ ์์ด๋ ๋๋ฒ๊ทธ๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ์ ๊ฒ์ ๋๋ค.
@blbradley ๊ฐ์ฌ
๋์ผํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์๋ฃจ์ ์ ์ฌ์ฉ๋์ง ์๋ AWS ์๊ฒฉ ์ฆ๋ช ์ผ๋ก Windows ํ๊ฒฝ ๋ณ์๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด์์ต๋๋ค.
Python3 boto3์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๊ด์ฐ์ =/
ํธ์คํธ Time&Region์ ๊ฒ์คํธ Time&Region๊ณผ ์ ์ฌํ๊ฒ ๋ง๋๋ ๊ฐ์ ๋จธ์ ์ ์์ต๋๋ค.
์ค๋ ์๋ก ์์ฑ๋ ํค์์๋ ์ด๊ฒ์ด ๋์๊ฒ ์ํฅ์ ๋ฏธ์ณค๋ค๋ ์ฌ์ค์ ์๋ฆฌ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ ์ข์ ๋์ ์ฌ๊ธฐ์ ์ฐฉ๋ฅํ๊ณ ํค์์ /
์ ๋ํ ์ธ๊ธ์ ๋ณด์์ต๋๋ค. ๋ฌผ๋ก ๊ทธ๊ฒ์ด ๋ฌธ์ ์์ต๋๋ค. ์ ํค๊ฐ ์์ผ๋ฉด ์๋ํฉ๋๋ค. ์?!
์ด ๋ฌธ์ ๊ฐ 2014๋ ์ ์์๋์๋ค๋ ๊ฒ์ด ๋ฏฟ๊ธฐ์ง ์๊ณ ์ฌ์ ํ ์ด์ ๋ํ ์์ ์ฌํญ์ด ์์ต๋๋ค. ์ด ๋ฒ๊ทธ๋ก ์ธํด ์๋ก์ด AWS ์๊ฒฉ ์ฆ๋ช ์ธํธ๋ฅผ ๋ง๋ค์ด์ผ ํ์ต๋๋ค. '/' ์ธ์ฝ๋ฉ๋ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค.(
"/"๋ก ์๊ฒฉ ์ฆ๋ช ์ ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ด ์ ์ ์ง์ ํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ง๊ธ 2020๋ ์ ์ด๋งํ๋ฉด ๋ฉ๋๋ค. ๋น๋ฐ ํค์๋ '+'๊ฐ ์์ต๋๋ค.
aws-cli โ aws ํ๋ก์ ํธ์์ ๊ฐ๋ฐ โ ์ ํจํ aws ํค๋ก ์คํจ... 6๋ ๋์?
2020๋ 1์์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋น๋ฐ ํค์๋ "/" ์ฌ๋์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
AWS IAM ์ฝ์์ ์ฌ์ฉํ์ฌ ์ ์๊ฒฉ ์ฆ๋ช ์ธํธ๋ฅผ ์์ฑํ๊ณ ๋น๋ฐ ํค๊ฐ ๋ชจ๋ ์์ซ์์ธ์ง, "/", "+"๊ฐ ์๋์ง ํ์ธํ์ต๋๋ค. ~/.aws/credentials ํ์ผ์์ ์ด์ ๋น๋ฐ ํค๋ฅผ ์ ๋น๋ฐ ํค๋ก ๊ต์ฒดํ ๋ค์ ๋ค์ ์๋ํ์ต๋๋ค.
์ด๊ฒ์ ๊ทธ๊ฒ์ ํด๊ฒฐํ์ต๋๋ค.
2020๋ ์๋ ๋์ผํ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ซ์๋ ๋ด ์๊ฒฉ ์ฆ๋ช ์์ฒด์ ์ผ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐํ ์ ์์ผ๋ฉฐ ์ ๊ฐ ์ ์ดํ ์ ์์ต๋๋ค.
์บ๋ฆญํฐ๋ฅผ ์ ๊ฑฐํ ๋๊น์ง ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ์์ฑํ์ญ์์ค. ๋ณดํต ํ๋ ๋ฒ๋ง ๋ ์๋ํ๋ฉด ๋ฉ๋๋ค.
๋ชจ๋ฆฌ์ธ
๋ณด๋ธ ์ฌ๋: columb1a [email protected]
๋ณด๋ธ ๋ ์ง: 2020๋
1์ 21์ผ ํ์์ผ ์คํ 1:47
๋ฐ๋ ์ฌ๋: aws/aws-cli [email protected]
์ฐธ์กฐ: Maurice Bizzarri [email protected] ; ๋๊ธ [email protected]
์ ๋ชฉ: Re: [aws/aws-cli] SignatureDoesNotMatch ์ค๋ฅ(#602)
2020๋ ์๋ ๋์ผํ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ซ์๋ ๋ด ์๊ฒฉ ์ฆ๋ช ์์ฒด์ ์ผ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐํ ์ ์์ผ๋ฉฐ ์ ๊ฐ ์ ์ดํ ์ ์์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์
๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faws%2Faws-cli%2Fissues%2F602%3Femail_source%3Dnotifications์์ ํ์ธํ์ธ์. 26email_token % % % 3DAAAXXM3CF63PVTWMVHJN2FTQ65UMRA5CNFSM4ALOPGL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJRMFFA 23issuecomment-576,897,684 ๋ฐ ๋ฐ์ดํฐ = 02% 7C01 % 7Cmaurice % 40bizzarrisoftware.com % 7Cf6f2e8a571954134b76b08d79ebb6bee % 7C9aa15552370449f5ac56c2850c165d32 % 7C1 % 7C0 % 7C637152400117352225 ๋ฐ SDATA = 2Z6PQRSvKD0P8Eu0yrs15Ypi6GgtFvaDi7qewAq5yH4 % 3D ๋ฐ ์์ฝ = 0 ๋๋ ๊ฑฐ๋ถ https://nam04.safelinks.protection.outlook.com /?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAAXXM34MIXB32H3RMQL2FTQ65UMRANCNFSM4ALOPGLQ&data=02%7C01%7Cmaurice%40bizzarrisoftware.com%7Cf6f2e8a571954134b76b08d79ebb6bee%7C9aa15552370449f5ac56c2850c165d32%7C1%7C0%7C637152400117362212&sdata=53%2F78BXqn3FRxlkfzXYHnJPEEbs7Ta1XmJhW%2BZdBjXo%3D&reserved= 0 .
์ฒ์์๋ ์๊ฐ ์ด๊ณผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ awscli๋ฅผ ์ ๋ฐ์ดํธํ ํ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. 6๋ ์ด๋ฉด ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ๋๋ฐ...
๋ํ gitlab์ ํตํด AWS S3 ๋ฒํท์ Vue.js ์ฑ์ ๋ฐฐํฌํ๊ณ ์์ต๋๋ค.
msg:์น๋ช
์ ์ธ ์ค๋ฅ: ListObjectsV2 ์์
์ ํธ์ถํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(SignatureDoesNotMatch): ๊ณ์ฐํ ์์ฒญ ์๋ช
์ด ์ ๊ณตํ ์๋ช
๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. ํค์ ์๋ช
๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
์์ซ์๊ฐ ์๋ ๋ฌธ์๊ฐ ์์์ง๋ง ๋จ์ผ ํ๋กํ์ ๋ํด ํ๋กํ ์์ ์ด ์๋ํ์ง ์์์ต๋๋ค. ์ฝ์์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์ฆ๋ช ์ ๋ค์ ์์ฑํ๊ณ ์ ์๊ฒฉ ์ฆ๋ช ์ด ๋ฐฉ๊ธ ์๋ํ์ต๋๋ค.
์ค๋๋ ์๋ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ํน์ ๋ฌธ์('+' ๋๋ '/') ์์ด ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์์ฑํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค.
์ฌ์ ํ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ๊ฐ์๊ธฐ ๋ฐ์ํฉ๋๋ค. Get ๋ฐ Put ์์ ์ผ๋ก ์์ ํ๋๋ฐ ํ๋๋ ์๋ํ๊ณ ๋ค๋ฅธ ํ๋๋ ์๋ํ์ง ์์ต๋๋ค. ์, ๋ด ๋น๋ฐ ํค์๋ ํน์ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ง ์์ต๋๋ค. ์ด๋ค ๋์์ด? ๋จผ์ getIntent(amazon lex ๋ชจ๋ธ API)๋ฅผ ํธ์ถํ์ฌ ์ธํ ํธ ์ฒดํฌ์ฌ์ ๊ฒ์ํ ๋ค์ putIntent๋ฅผ ํธ์ถํ์ฌ ํด๋น ์ธํ ํธ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. Get ๋ฉ์๋๋ ์๋ํ์ง๋ง(ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋) put ๋ฉ์๋๋ ๋์ผํ ์๋ช ๋ฌธ์ ๋ก ๋ํ๋๋ ๋ฐ๋ฉด, ์ฝ๋์์ Get ๋ฉ์๋ API๋ฅผ ์ ๊ฑฐํ๋ฉด Put ๋ฉ์๋๋ 3๋ฒ ์ค 2๋ฒ ์๋ํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ํค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
aws ํ๋กํ์ ๋ค์ ๊ตฌ์ฑํ์ญ์์ค.
AWS ์ก์ธ์ค ํค ID [ * * * * QD5E]: AWS_ACCESS_KEY_ID
AWS ๋ณด์ ์ก์ธ์ค ํค [ * * * * ANjA]: AWS_SECRET_ACCESS_KEY
๊ธฐ๋ณธ ๋ฆฌ์ ์ด๋ฆ [eu-west-3]: AWS_REGION
๊ธฐ๋ณธ ์ถ๋ ฅ ํ์[json]: OUTPUT_FORMAT
์๋ !
๋ด ํด๋ผ์ด์ธํธ์ ๋ฐํ๋ ๋ฏธ๋ฆฌ ์๋ช
๋ URL์ ์ฌ์ฉํ ๋ ์ด์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
URL์ ์๋ฒ์์ ์์ฑ๋ฉ๋๋ค(์ ํ๋ ์๊ฐ ๋์). ์๋ฒ๋ python์ด๊ณ ๊ฑฐ๊ธฐ์๋ ์ค๋ฅ๊ฐ ํ์๋์ง ์์ง๋ง ํด๋ผ์ด์ธํธ๋ JS์
๋๋ค. URL๋ง ๊ฐ์ ธ์์ ์ฝ๋๋ค. URL์ ์ผ๋ถ๋ ์ด ๋ฆฌ์์ค์ ๋ํด ์์ฑ๋ ์๊ฒฉ ์ฆ๋ช
์
๋๋ค)
์ด ์ค๋ฅ๋ ์ผ์ง ๋ฐ ๊บผ์ง์ด๋ฏ๋ก ์๊ฒฉ ์ฆ๋ช ์ ํน์ ํค์ ๋ํด ์ฌ๊ธฐ์์ ๋งํ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ์๋ฒ์์ ์์ฑ๋ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค!
์ฝ๋์์ ์ด๊ฒ์ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ด๋ป๊ฒ ๋ ํน์ ํค๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๊น?
์๋ !
๋ด ํด๋ผ์ด์ธํธ์ ๋ฐํ๋ ๋ฏธ๋ฆฌ ์๋ช ๋ URL์ ์ฌ์ฉํ ๋ ์ด์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
URL์ ์๋ฒ์์ ์์ฑ๋ฉ๋๋ค(์ ํ๋ ์๊ฐ ๋์). ์๋ฒ๋ python์ด๊ณ ๊ฑฐ๊ธฐ์๋ ์ค๋ฅ๊ฐ ํ์๋์ง ์์ง๋ง ํด๋ผ์ด์ธํธ๋ JS์ ๋๋ค. URL๋ง ๊ฐ์ ธ์์ ์ฝ๋๋ค. URL์ ์ผ๋ถ๋ ์ด ๋ฆฌ์์ค์ ๋ํด ์์ฑ๋ ์๊ฒฉ ์ฆ๋ช ์ ๋๋ค)์ด ์ค๋ฅ๋ ์ผ์ง ๋ฐ ๊บผ์ง์ด๋ฏ๋ก ์๊ฒฉ ์ฆ๋ช ์ ํน์ ํค์ ๋ํด ์ฌ๊ธฐ์์ ๋งํ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ์๋ฒ์์ ์์ฑ๋ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค!
์ฝ๋์์ ์ด๊ฒ์ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ด๋ป๊ฒ ๋ ํน์ ํค๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๊น?
@maya-harel IAM์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. -> ์ฌ์ฉ์๊ฐ ์์ฑํ ์ฌ์ฉ์๋ฅผ ์ ํํ๊ณ ๋น๋ฐ ํค ๋ณด์ ์๊ฒฉ ์ฆ๋ช ํญ์ ๋ค์ ์์ฑํ ์ ์์ต๋๋ค.
๋ํ ์ฝ๋์ ํ์ด๋ฐ์ ์ ๋ง ์น๋ช ์ ์ ๋๋ค. ๋ฐฑ์๋์์ ์ํํ๋ ๊ฐ ์์ฒญ์ ๋ํด ํค๋์์ ์๋ช ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ํ์ฌ ์๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
์ ์ณ๋๊ณ , ์ต์ ์ด ์๋๋ผ๊ณ ๋ช ์์ ์ผ๋ก ๋งํ ์ฌ์ฉ์์๊ฒ ๋ธ๋ผ์ธ๋ "IAM ์๊ฒฉ ์ฆ๋ช ์ฌ์์ฑ" ์ ์์ด ๋ง์ด ์์์ต๋๋ค.
์ด๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋์์ด ๋์ง ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ ํจํ IAM ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ๋ ค๋ aws-cli ์ฌ์ฉ์์๊ฒ ๊ณ์ ์ํฅ์ ๋ฏธ์น๋ ์๋ ค์ง ๋ฒ๊ทธ๋ผ๋ ์ฌ์ค์ ์ฐ๋งํ๊ฒ ํฉ๋๋ค.
์ด๊ฒ ๋ํ ์คํํฉ๋๋ค.
$ aws --๋ฒ์
aws-cli/1.16.300 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.13.36
๋ด ํค๋ ์์ ํ ์์ซ์์ด๋ฉฐ ํน์ ๋ฌธ์๋ ์์ต๋๋ค.
ํค๋ ์ ธ์์ ์๋ํ์ง๋ง Makefile ๋์์์ Jenkins๋ฅผ ํตํด ์ฌ์ฉํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
๋ด ๋น๋ฐ ํค์๋ /
๋ฐ +
๊ฐ ๋ชจ๋ ์์ต๋๋ค. ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ค์์ ์๋ํ์ต๋๋ค.
> aws iam get-user
( ~/.aws/credentials
ํ์ผ ์ฌ์ฉ)boto3.Session(profile_name=PROFILE)
์ธ์(~/.aws/credentials์์ ๊ฐ์ ธ์ด)์ด๋ฌํ ๋ชจ๋ ๊ฒฐ๊ณผ๋ SignatureDoesNotMatch
์ค๋ฅ์
๋๋ค.
ํ์ฌ ํค๋ฅผ ์ฌ์์ฑํ ์ ์์ต๋๋ค.
๋ด๊ฐ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ Cyberduck(https://cyberduck.io/)์์ S3 ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์๊ณ ์์๋๋ก ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ป๊ฒ ๊ทธ๋ด ์ ์๋?
์ด๊ฒ์ ๋ด๊ฐ ๋ง๋ ๊ฐ์ฅ ์ค๋ง์ค๋ฌ์ด ๋ฒ๊ทธ ์ค ํ๋์ฌ์ผ ํ๋ฉฐ ์์ง ์์ ๋์ง ์์๋ค๋ ์ฌ์ค์ด ์ํ๊น์ธ ๋ฟ์ ๋๋ค. CircleCI์์ "+" ์์ด ํฌ๋ ๋ง์ ๋ฐ๋ ๊ฒ์ด ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
์ฌ์ ํ ์ถฉ๋ํฉ๋๊น? ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ฌ ์์ฐ ๋๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค ...
๋ค, ๋ต๋ตํฉ๋๋ค. +
๊ฐ ์๋ ๋ด ๋น๋ฐ ํค๋ Jenkins ํ์ดํ๋ผ์ธ์์ ์๋ํ์ง ์์์ง๋ง /
๋ช ๊ฐ๋ง ์๋ ์ ์ํธ๋ฅผ ์์ฑํ์ ๋ ์ ๋๋ก ์๋ํ์ต๋๋ค.
Ubuntu 16.04์์ ํจํค์ง ์ค์น ๋ฒ์ ์ awscli์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. awscli๋ฅผ python pip ํจํค์ง๋ก ์ค์นํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ง์นจ์ Python PIP๋ฅผ ์ฌ์ฉํ์ฌ AWS CLI ์ค์น ์น์
์์ ์ด ๋งํฌ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
1) ์ก์ธ์ค ํค๋ฅผ ์ฌ์์ฑํ ํ InvalidSignatureException ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
2) ๋ถ๋ถ ์ค๋ฅ ๋ก๊ทธ๋ ์๋์ ๊ฐ์ต๋๋ค.
$ python SetupAWS.py list_things
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "SetupAWS.py", 222ํ,
list_things()
list_things์ ํ์ผ "SetupAWS.py", 182ํ
์ฌ๋ฌผ = client.list_things()['์ฌ๋ฌผ']
ํ์ผ "c:Program Files (x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py", 316ํ, _api_call
๋ฐํ self._make_api_call(operation_name, kwargs)
ํ์ผ "c:Program Files (x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py", 626ํ, _make_api_call
error_class(parsed_response, operation_name) ์ฌ๋ฆฌ๊ธฐ
botocore.exceptions.ClientError: ListThings ์์
์ ํธ์ถํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค(InvalidSignatureException): ๊ณ์ฐํ ์์ฒญ ์๋ช
์ด ์ ๊ณตํ ์๋ช
๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. AWS ๋ณด์ ์ก์ธ์ค ํค ๋ฐ ์๋ช
๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์ค๋ช
์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
1) ์์ ๋ง์ ์๊ฒฌ์์ ์ ์ํ ๊ฒ์ฒ๋ผ ๋ด ๋น๋ฐ ์ก์ธ์ค ํค ์ "+" ๊ฐ ์์ผ๋ฉด ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
1) IAM ์ฌ์ฉ์๋ก ์ ์ก์ธ์ค ํค ๋ฅผ ์์ฑํ๊ณ ์ ๋ณด์ ์ก์ธ์ค ํค ๊ฐ ๋ฌธ์์ด ๋ด์ "+"๋ฅผ ํฌํจํ์ง ์๋์ง ํ์ธํ์ต๋๋ค.
2) aws configure ๋ช
๋ น์ ์คํํ๊ณ ์ ๊ฐ์ ์ ๊ณตํ์ต๋๋ค.
3) ์๋์ ๊ฐ์ด ๋ด ๋ฌผ๊ฑด์ ์ฑ๊ณต์ ์ผ๋ก ๋์ดํ python SetupAWS.py list_things ๋ช
๋ น์ ์คํํ์ต๋๋ค.
$ python SetupAWS.py list_things
[{'thingName': 'myThingName', 'thingArn': 'myThingArn', '์์ฑ': {}, '๋ฒ์ ': 1}]
์ด ํธ๋ 6๋ ๋์ ๊ณต๊ฐ๋์์ผ๋ฉฐ ๊ทํ์ ์ธ๋ด, ๋๊ธฐ ๋ฐ ์ ๊ณตํ ์ ๋ณด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ช ๊ฐ์ง ๊ทผ๋ณธ์ ์ธ ์์ธ์ ๊ทํ์ ์๊ฒฌ(https://github.com/aws/aws-cli/issues/602#issuecomment-520469209)์ ํตํด ํ์ธ๋์์ผ๋ฉฐ ๋ช ๋ น์ค ์ฌ์ฉ ์ค๋ช ์ ์ค๋ฅ ๋ฌธ์ ํด๊ฒฐ ์ฅ ์ผ๋ก ์ปดํ์ผ๋์์ต๋๋ค. ์ด๋ฌํ ์์ธ์๋ ์๊ณ ์๊ณก ๋ฐ ํน์ ๋ฌธ์๊ฐ ์๋ ํค๋ฅผ ์๋ชป ์ฒ๋ฆฌํ๋ ์ผ๋ถ ์ด์ ์ฒด์ ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ค์ํ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ์ฌํํ๋ ค๊ณ ํ์ต๋๋ค. Python 3.6.8 ๋ฐ 3.8.3๊ณผ ํจ๊ป Ubuntu 16.04, Ubuntu 18.04 ๋ฐ Amazon Linux 2๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋ง์ ๋๊ธ ์์ฑ์๊ฐ Python 2๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ ์ด์ ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ์ฌํ์ ์๋ํ์ง ์์์ต๋๋ค. ์ด๋ฒ ํธ์์ ์ธ๊ธํ ์ต์ v1 aws-cli(์์ฑ ๋น์ 1.18.80)์ ์ด์ ๋ฒ์ (1.11.78)์ ์ฌ์ฉํ์ต๋๋ค. @jamesls์์ ์ ๊ณตํ๋ ์คํฌ๋ฆฝํธ(https://github.com/aws/aws-cli/issues/602#issuecomment-281866173)๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋ฌธ์๊ฐ ์๋ ์๊ฒฉ ์ฆ๋ช
์์ ์์ฑํ๊ณ ์ต๋ ๊ฐ๊ฐ 1์๊ฐ. SignatureDoesNotMatch
์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค. describe-instances ๋ช
๋ น์์ ๊ฐ๋ AuthFailure
์ค๋ฅ๋ฅผ ์์ ํ์ง๋ง ๋์ผํ ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ๋ช
๋ น์ ์ฌ์๋ํ๋ฉด ์ฑ๊ณตํฉ๋๋ค.
๋ง์ ์์ ๋๊ธ๋ก ์ธํด ์ด ๋ฌธ์ ๋ฅผ ์ฐพ๋ ์ ๊ท ์ฌ์ฉ์๊ฐ ๋ฌธ์ ํด๊ฒฐ ์ ์์ ๋ํ ๊ฐ๋ฐ์ ํ์ ์์ฒญ์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ฐ๋ฆฌ ํ๊ณผ ์ปค๋ฎค๋ํฐ๊ฐ ์ด ์ค๋ฅ์ ์์ธ์ ๊ฒฐ์ ํ ์ ์๋๋ก ์ง์ํ๊ธฐ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฌ์ฉ์์ ๋ํ ์ง์นจ ๋ฐ ์ค๋ช ์๊ตฌ ์ฌํญ์ด ํฌํจ๋ ํน์ GitHub ๋ฌธ์ ํ ํ๋ฆฟ์ ๋ง๋ญ๋๋ค.
์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ์ ํญ์ผ๋ก ์ด๋ํ์ฌ "์ ๋ฌธ์ " ๋ฒํผ์ ํด๋ฆญํ๊ณ SignatureDoesNotMatch
์ค๋ฅ ๋ณด๊ณ ์ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ์ญ์์ค(๋๋ ์๋ ๋งํฌ ์ฌ์ฉ).
์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฌ์ฉ์ ํ๊ฒฝ์ ์ฐจ์ด๋ก ์ธํด ๊ธฐ์กด ๋ฌธ์ ์ ๋๊ธ์ ๋ฌ๊ธฐ ๋ณด๋ค๋ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ ์ถํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
SignatureDoesNotMatch
์ค๋ฅ ๋ณด๊ณ ์๋ฅผ ์ ์ถํ๋ ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐฉ๊ธ ๋์๊ฒ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์ผ๋ฉฐ ๋ณด๊ณ ํ์ง ์์์์๋ ๋ถ๊ตฌํ๊ณ ์์คํ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๋จ์ด์ง ๊ฒฐ๊ณผ์์ต๋๋ค. pool.ntp.org์ ๋ํด ntpdate๋ฅผ ์คํํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.