<p>I'm setting up a Kubernetes cluster on AWS and as part of the configuration for say the API Server, I provide the <code>--cloud-provider=aws</code> setting.</p>

<p>Once it starts up, however, I see in the logs that it complains about not having AWS credentials:
<code>NoCredentialProviders: no valid providers in chain</code></p>

<p>After some searching, it seems that this issue was resolved for most people by using the "kube-up" script. However, for those who are not using the script to set up their cluster, how do we provide Kubernetes with AWS credentials?</p>

<p>It sounds like you don't have the appropriate IAM instance profile set on your master VM. The <code>kube-up</code> script for AWS creates a <a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/aws/templates/iam/kubernetes-master-role.json">role</a> and associated <a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/aws/templates/iam/kubernetes-master-policy.json">policy</a> that is attached to the master VM when it is created. Having the IAM policy attached should give you the credentials necessary to make API calls into AWS.  </p>
