<p>I have successfully deployed <code>efs-provisioner</code> following the steps outlined in <a href="https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs" rel="nofollow noreferrer">efs-provisioner</a>.</p>

<p><a href="https://i.stack.imgur.com/Y4AHo.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Y4AHo.png" alt="enter image description here"></a></p>

<p>But the PVC is hanging in <code>Pending</code> State displaying the same message:</p>

<p><code>waiting for a volume to be created, either by external provisioner "example.com/aws-efs" or manually created by system administrator</code>.</p>

<p><a href="https://i.stack.imgur.com/vhFAw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vhFAw.png" alt="enter image description here"></a></p>

<p>What could be a reason why PVC is not created properly?</p>

<p>The solution was described by ParaSwarm posted <a href="https://github.com/kubernetes-incubator/external-storage/issues/754#issuecomment-418207930" rel="nofollow noreferrer">here</a> </p>

<blockquote>
  <p><em>"...The quick fix is to give the cluster-admin role to the default service account. Of course, depending on your environment and
  security, you may need a more elaborate fix. If you elect to go the
  easy way, you can simply apply this:"</em></p>
</blockquote>

<pre><code>apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: default-admin-rbac (or whatever)
subjects:
  - kind: ServiceAccount
    name: default
    namespace: default
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
</code></pre>
