boto3 client NoRegionError: You must specify a region error only sometimes

os.environ['AWS_DEFAULT_REGION'] = 'your_region_name'

In my case sensitivity mattered.


One way or another you must tell boto3 in which region you wish the kms client to be created. This could be done explicitly using the region_name parameter as in:

kms = boto3.client('kms', region_name='us-west-2')

or you can have a default region associated with your profile in your ~/.aws/config file as in:

[default]
region=us-west-2

or you can use an environment variable as in:

export AWS_DEFAULT_REGION=us-west-2

but you do need to tell boto3 which region to use.