mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-11-04 12:28:12 +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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user