mirror of
https://github.com/plantroon/acme.sh.git
synced 2024-11-12 17:31:47 +00:00
Make the instance metadata fetcher self-contained
This is to provide a clean path to future extension work such as adding a _use_container_role function to offer similar support for ECS containers. The $_using_role flag has also been made generic so that future role providers can also make use of it.
This commit is contained in:
parent
693627a858
commit
759f4f2c62
@ -9,7 +9,6 @@
|
||||
|
||||
AWS_HOST="route53.amazonaws.com"
|
||||
AWS_URL="https://$AWS_HOST"
|
||||
AWS_METADATA_URL="http://169.254.169.254/latest/meta-data"
|
||||
|
||||
AWS_WIKI="https://github.com/Neilpang/acme.sh/wiki/How-to-use-Amazon-Route53-API"
|
||||
|
||||
@ -36,7 +35,7 @@ dns_aws_add() {
|
||||
fi
|
||||
|
||||
#save for future use, unless using a role which will be fetched as needed
|
||||
if [ -z "$_using_instance_role" ]; then
|
||||
if [ -z "$_using_role" ]; then
|
||||
_saveaccountconf_mutable AWS_ACCESS_KEY_ID "$AWS_ACCESS_KEY_ID"
|
||||
_saveaccountconf_mutable AWS_SECRET_ACCESS_KEY "$AWS_SECRET_ACCESS_KEY"
|
||||
fi
|
||||
@ -176,14 +175,16 @@ _get_root() {
|
||||
}
|
||||
|
||||
_use_instance_role() {
|
||||
if ! _get "$AWS_METADATA_URL/iam/security-credentials/" true 1 | _head_n 1 | grep -Fq 200; then
|
||||
_url="http://169.254.169.254/latest/meta-data/iam/security-credentials/"
|
||||
_debug "_url" "$_url"
|
||||
if ! _get "$_url" true 1 | _head_n 1 | grep -Fq 200; then
|
||||
_err "Unable to fetch IAM role from AWS instance metadata."
|
||||
return
|
||||
fi
|
||||
_aws_role=$(_get "$AWS_METADATA_URL/iam/security-credentials/" "" 1)
|
||||
_aws_role=$(_get "$_url" "" 1)
|
||||
_debug "_aws_role" "$_aws_role"
|
||||
_aws_creds="$(
|
||||
_get "$AWS_METADATA_URL/iam/security-credentials/$_aws_role" "" 1 \
|
||||
_get "$_url$_aws_role" "" 1 \
|
||||
| _normalizeJson \
|
||||
| tr '{,}' '\n' \
|
||||
| while read -r _line; do
|
||||
@ -201,7 +202,7 @@ _use_instance_role() {
|
||||
)"
|
||||
_secure_debug "_aws_creds" "$_aws_creds"
|
||||
eval "$_aws_creds"
|
||||
_using_instance_role=true
|
||||
_using_role=true
|
||||
}
|
||||
|
||||
#method uri qstr data
|
||||
|
Loading…
Reference in New Issue
Block a user