Εάν έχετε καταφέρει να αποκτήσετε κάποια IAM credentials, μπορεί να σας ενδιαφέρει να έχετε πρόσβαση στην web console χρησιμοποιώντας τα παρακάτω εργαλεία.
Σημειώστε ότι ο χρήστης/ρόλος πρέπει να έχει την άδεια sts:GetFederationToken.
Custom script
Το παρακάτω script θα χρησιμοποιήσει το προεπιλεγμένο προφίλ και μια προεπιλεγμένη τοποθεσία AWS (όχι gov και όχι cn) για να σας δώσει ένα υπογεγραμμένο URL που μπορείτε να χρησιμοποιήσετε για να συνδεθείτε στην web console:
# Get federated creds (you must indicate a policy or they won't have any perms)## Even if you don't have Admin access you can indicate that policy to make sure you get all your privileges## Don't forget to use [--profile <prof_name>] in the first line if you need tooutput=$(awsstsget-federation-token--nameconsoler--policy-arnsarn=arn:aws:iam::aws:policy/AdministratorAccess)if [ $? -ne0 ]; thenecho"The command 'aws sts get-federation-token --name consoler' failed with exit status $status"exit $statusfi# Parse the outputsession_id=$(echo $output |jq-r'.Credentials.AccessKeyId')session_key=$(echo $output |jq-r'.Credentials.SecretAccessKey')session_token=$(echo $output |jq-r'.Credentials.SessionToken')# Construct the JSON credentials stringjson_creds=$(echo-n"{\"sessionId\":\"$session_id\",\"sessionKey\":\"$session_key\",\"sessionToken\":\"$session_token\"}")# Define the AWS federation endpointfederation_endpoint="https://signin.aws.amazon.com/federation"# Make the HTTP request to get the sign-in tokenresp=$(curl-s"$federation_endpoint" \--get \--data-urlencode "Action=getSigninToken" \--data-urlencode "SessionDuration=43200" \--data-urlencode "Session=$json_creds")signin_token=$(echo-n $resp |jq-r'.SigninToken'|tr-d'\n'|jq-sRr@uri)# Give the URL to loginecho-n"https://signin.aws.amazon.com/federation?Action=login&Issuer=example.com&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=$signin_token"
cd/tmppython3-mvenvenvsource./env/bin/activatepipinstallaws-consoleraws_consoler [params...] #This will generate a link to login into the console
Βεβαιωθείτε ότι ο χρήστης IAM έχει άδεια sts:GetFederationToken, ή παρέχετε έναν ρόλο για να αναληφθεί.
aws-vault
aws-vault είναι ένα εργαλείο για την ασφαλή αποθήκευση και πρόσβαση στα διαπιστευτήρια AWS σε ένα περιβάλλον ανάπτυξης.
aws-vaultlistaws-vaultexecjonsmith--awss3ls# Execute aws cli with jonsmith credsaws-vaultloginjonsmith# Open a browser logged as jonsmith
Μπορείτε επίσης να χρησιμοποιήσετε το aws-vault για να αποκτήσετε μια συνεδρία κονσόλας προγράμματος περιήγησης
Παράκαμψη περιορισμών User-Agent από Python
Εάν υπάρχει μια περιορισμός για την εκτέλεση ορισμένων ενεργειών με βάση τον user agent που χρησιμοποιείται (όπως ο περιορισμός της χρήσης της βιβλιοθήκης python boto3 με βάση τον user agent), είναι δυνατόν να χρησιμοποιήσετε την προηγούμενη τεχνική για να συνδεθείτε στην ιστόσελίδα κονσόλας μέσω προγράμματος περιήγησης, ή μπορείτε να τροποποιήσετε απευθείας τον user-agent του boto3 κάνοντας:
# Shared by ex16x41# Create a clientsession=boto3.Session(profile_name="lab6")client=session.client("secretsmanager",region_name="us-east-1")# Change user agent of the clientclient.meta.events.register('before-call.secretsmanager.GetSecretValue',lambdaparams,**kwargs:params['headers'].update({'User-Agent': 'my-custom-tool'}) )# Perform the actionresponse=client.get_secret_value(SecretId="flag_secret") print(response['SecretString'])