AWS authentication tokens are time stamped. If your date time is wrong on your local computer (In my case ubuntu) your credentials will be invalid and you will get “AWS was not able to validate the provided credentials” It’s a bit misleading but it is what it is. Set your time with below command or set up NTP.
You may also see this error,
An error occurred (SignatureDoesNotMatch) when calling the SetStackPolicy operation: Signature expired: 20171128T171417Z is now earlier than 20171128T171830Z (20171128T172330Z – 5 min.)
ntpd update/start/stop didn’t work but this solution works like a charm.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
ntp in AWS:
ntpdate -u 169.254.169.123
Note: The Amazon Time Sync Service is available through NTP at the,
169.254.169.123IP address for any instance running in a VPC. Your instance does not require access to the internet, and you do not have to configure your security group rules or your network ACL rules to allow access.
If you are within AWS, Personally I think chrony is the best option –
More: Chrony vs NTP
All credit to : AWS Forum