You must specify a region
See original GitHub issueTitle: Unhandled exception during sync stage ‘aws’ - You must specify a region
Description:
AWS Sync failed multiple times with 2 separate AWS accounts. Its failing and mentioning
You must specify a region
although region is mention in the config.~/.aws/config
.
[aws-xxxx]
role_arn = arn:aws:iam::333333333:role/cartography-read-only
region = eu-west-1
output = json
credential_source = Ec2InstanceMetadata
Though it works if you explicitly set the AWS_DEFAULT_REGION.
export AWS_DEFAULT_REGION=eu-west-1
To Reproduce:
Steps to reproduce the behavior. Provide all data and inputs required to reproduce the issue. Do not set AWS_DEFAULT_REGION and run the sync of account other then DEFAULT. AWS_PROFILE=aws-xxxx cartography --neo4j-uri bolt://localhost:7687 Python Version: 3.7.9 Cartography Version: 0.31.0
Logs:
WARNING:cartography.intel.aws.s3:get_bucket_policy(xxxx-xxxx-logs) failed because the bucket no longer exists
ERROR:cartography.sync:Unhandled exception during sync stage 'aws'
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 71, in run
stage_func(neo4j_session, config)
File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 63, in timed
return method(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 150, in start_aws_ingestion
_sync_multiple_accounts(neo4j_session, aws_accounts, config.update_tag, common_job_parameters)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 98, in _sync_multiple_accounts
_sync_one_account(neo4j_session, boto3_session, account_id, sync_tag, common_job_parameters)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 32, in _sync_one_account
regions = ec2.get_ec2_regions(boto3_session)
File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 63, in timed
return method(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/ec2/__init__.py", line 21, in get_ec2_regions
client = boto3_session.client('ec2')
File "/usr/local/lib/python3.7/site-packages/boto3/session.py", line 263, in client
aws_session_token=aws_session_token, config=config)
File "/usr/local/lib/python3.7/site-packages/botocore/session.py", line 838, in create_client
client_config=config, api_version=api_version)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 87, in create_client
verify, credentials, scoped_config, client_config, endpoint_bridge)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 328, in _get_client_args
verify, credentials, scoped_config, client_config, endpoint_bridge)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 73, in get_client_args
endpoint_url, is_secure, scoped_config)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 154, in compute_client_args
s3_config=s3_config,
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 220, in _compute_endpoint_config
return self._resolve_endpoint(**resolve_endpoint_kwargs)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 303, in _resolve_endpoint
service_name, region_name, endpoint_url, is_secure)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 402, in resolve
service_name, region_name)
File "/usr/local/lib/python3.7/site-packages/botocore/regions.py", line 134, in construct_endpoint
partition, service_name, region_name)
File "/usr/local/lib/python3.7/site-packages/botocore/regions.py", line 148, in _endpoint_for_partition
raise NoRegionError()
botocore.exceptions.NoRegionError: You must specify a region.
Traceback (most recent call last):
File "/usr/local/bin/cartography", line 33, in <module>
sys.exit(load_entry_point('cartography==0.31.0', 'console_scripts', 'cartography')())
File "/usr/local/lib/python3.7/site-packages/cartography/cli.py", line 348, in main
return CLI(default_sync, prog='cartography').main(argv)
File "/usr/local/lib/python3.7/site-packages/cartography/cli.py", line 328, in main
return cartography.sync.run_with_config(self.sync, config)
File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 145, in run_with_config
return sync.run(neo4j_driver, config)
File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 71, in run
stage_func(neo4j_session, config)
File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 63, in timed
return method(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 150, in start_aws_ingestion
_sync_multiple_accounts(neo4j_session, aws_accounts, config.update_tag, common_job_parameters)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 98, in _sync_multiple_accounts
_sync_one_account(neo4j_session, boto3_session, account_id, sync_tag, common_job_parameters)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/__init__.py", line 32, in _sync_one_account
regions = ec2.get_ec2_regions(boto3_session)
File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 63, in timed
return method(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/cartography/intel/aws/ec2/__init__.py", line 21, in get_ec2_regions
client = boto3_session.client('ec2')
File "/usr/local/lib/python3.7/site-packages/boto3/session.py", line 263, in client
aws_session_token=aws_session_token, config=config)
File "/usr/local/lib/python3.7/site-packages/botocore/session.py", line 838, in create_client
client_config=config, api_version=api_version)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 87, in create_client
verify, credentials, scoped_config, client_config, endpoint_bridge)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 328, in _get_client_args
verify, credentials, scoped_config, client_config, endpoint_bridge)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 73, in get_client_args
endpoint_url, is_secure, scoped_config)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 154, in compute_client_args
s3_config=s3_config,
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 220, in _compute_endpoint_config
return self._resolve_endpoint(**resolve_endpoint_kwargs)
File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 303, in _resolve_endpoint
service_name, region_name, endpoint_url, is_secure)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 402, in resolve
service_name, region_name)
File "/usr/local/lib/python3.7/site-packages/botocore/regions.py", line 134, in construct_endpoint
partition, service_name, region_name)
File "/usr/local/lib/python3.7/site-packages/botocore/regions.py", line 148, in _endpoint_for_partition
raise NoRegionError()
botocore.exceptions.NoRegionError: You must specify a region.
Please complete the following information::
- Cartography release version or commit hash: 0.31.0
- Python version: 3.7.9
- OS: Amazon Linux release 2
Additional context:
Add any other context about the problem here.
Issue Analytics
- State:
- Created 2 years ago
- Comments:5 (3 by maintainers)
Top Results From Across the Web
Error "You must specify a region" when running any aws CLI ...
I think you need to use for example: aws ecs list-container-instances --cluster default --region us-east-1. This depends of your region of course.
Read more >You must Specify a Region Error in AWS CLI [Solved]
The "You must specify a region" error occurs when we haven't configured the region for the AWS profile we're using, nor have we...
Read more >You must specify a region You can also configure ... - Edureka
Hello Guys,. I have configured AWS CLI on my windows system. I am trying to see my instances from cli. But it gives...
Read more >AWS Cli v2 You must specify a region · Issue #3772 - GitHub
Steps to reproduce the issue. AWS CLI Import Command run sucessfully $ aws configure import --csv file:///Users/XYZ/Downloads/credentials.
Read more >How To Fix aws Command Error “You must specify a region”
I was getting error "You must specify a region" when running any aws CLI command. The fix: Using the aws command: aws configure...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hi @sing22, thanks for posting the crash dump. What happens if you try
like in step 3 here?
Without the
--aws-sync-all-profiles
switch, cartography will create a “fake profile” here, and I believe this results in the NoRegionError.Let me know what happens and we can talk about how we can improve it.
This issue has been automatically closed for inactivity. If you still wish to make these changes, please open a new change or reopen this one.