From f708fdbd4b936e9a38c6d64b6b9d4b1471707e2b Mon Sep 17 00:00:00 2001 From: daniel Date: Wed, 18 Sep 2024 18:05:09 +0000 Subject: [PATCH] Update README.md --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/README.md b/README.md index 08480ea..bc8e2fa 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,71 @@ # route53-compare +**AWS Route53 Asset Inventory Script** +====================================== + +This Bash script helps you identify which assets in your AWS Route53 hosted zones are also tracked in JupiterOne. It does this by: + +1. Fetching all your Route53 hosted zones. + +2. Retrieving DNS records (A and CNAME) from each zone. + +3. Reaching out to JupiterOne's API to check if an asset exists with the DNS record's value. + +4. Printing out the results, indicating if the asset was found in JupiterOne or not. + + +**Prerequisites** +----------------- + +* **AWS CLI:** You need to have the AWS CLI installed and configured with the necessary credentials. + +* **JupiterOne API Key:** You'll need an API key from JupiterOne to access their GraphQL API. + + +**Setup** +--------- + +1. **Create a .env file:** In the same directory as the script, create a file named .env with the following content: +Replace the placeholders with your actual AWS profile name, JupiterOne API key, and JupiterOne account ID. +``` +AWS_PROFILE=your_aws_profile_name +J1_API_KEY=your_jupiterone_api_key +J1_ACCOUNT=your_jupiterone_account\id + +``` + +**Usage** +--------- + +1. **Make the script executable: +```bash +chmod +x dangle.sh +``` + +2. **Run the script: +```bash +./dangle.sh + or +bash dangle.sh +``` + + +The script will output the DNS records and whether or not a corresponding asset was found in JupiterOne. + +**To-Do** +--------- + +* **Error Handling:** The script includes basic error handling for the .env file. We should make it more robust at error handling for AWS CLI and JupiterOne API calls. + +* **Additional Record Types:** Currently the script only handles A and CNAME records. We should extend it to support other record types like MX, TXT, etc. + +* **JupiterOne Query:** The JupiterOne query is currently VERY simple. We might want to refine it. + + +**Remember:** + +* Replace script\_name.sh with the actual filename of your script. + +* Ensure the .env file is in the same directory as the script. + +* Consider adding more details to the README, such as examples of the output, potential use cases, or troubleshooting tips. \ No newline at end of file