diff --git a/parliament/statement.py b/parliament/statement.py
index bf663c9..cd9ab34 100644
--- a/parliament/statement.py
+++ b/parliament/statement.py
@@ -632,6 +632,15 @@ class Statement:
         else:
             self.effect_allow = False
 
+        # Check Sid
+        if "Sid" in self.stmt and not re.fullmatch("[0-9A-Za-z]*", self.stmt["Sid"]):
+            self.add_finding(
+                "Statement Sid does match regex [0-9A-Za-z]*",
+                severity.MALFORMED,
+                location={"string": self.stmt},
+            )
+            return False
+
         # Check Action
         if "Action" in self.stmt and "NotAction" in self.stmt:
             self.add_finding(
diff --git a/utils/update_iam_data.py b/utils/update_iam_data.py
index d9e45f9..e8a7b6c 100644
--- a/utils/update_iam_data.py
+++ b/utils/update_iam_data.py
@@ -15,7 +15,7 @@ Setup
 pip install beautifulsoup4
 
 # Download files
-wget -r -np -k -A .html -nc https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
+wget -r -np -k --accept 'list_*.html' --reject 'feedbackno.html','feedbackyes.html' -nc https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
 """
 
 

diff --git a/tests/unit/test_formatting.py b/tests/unit/test_formatting.py
index 98233d9..9a395e1 100644
--- a/tests/unit/test_formatting.py
+++ b/tests/unit/test_formatting.py
@@ -41,6 +41,18 @@ class TestFormatting(unittest.TestCase):
         )
         assert_false(len(policy.findings) == 0, "Policy has no Statement")
 
+    def test_analyze_policy_string_invalid_sid(self):
+        policy = analyze_policy_string(
+            """{
+    "Version": "2012-10-17",
+    "Statement": {
+        "Sid": "Statement With Spaces And Special Chars!?",
+        "Effect": "Allow",
+        "Action": "s3:listallmybuckets",
+        "Resource": "*"}}"""
+        )
+        assert_false(len(policy.findings) == 0, "Policy statement has invalid Sid")
+
     def test_analyze_policy_string_correct_simple(self):
         policy = analyze_policy_string(
             """{

Command for wget'ing IAM docs
Saw this:

https://github.com/duo-labs/parliament/blob/master/utils/update_iam_data.py#L18

As you know, I take a similar approach with policy sentry. I suggest modifying the command to this:

```bash
wget -r -np -k --accept 'list_*.html' --reject 'feedbackno.html','feedbackyes.html' -nc https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
```

This will remove all of the extraneous docs that you don't care about :)
tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_invalid_sid
tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_correct_multiple_statements_and_actions tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_correct_simple tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_multiple_statements_one_bad tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_no_action tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_no_statement tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_not_json tests/unit/test_formatting.py::TestFormatting::test_analyze_policy_string_opposites tests/unit/test_formatting.py::TestFormatting::test_condition tests/unit/test_formatting.py::TestFormatting::test_condition_action_specific tests/unit/test_formatting.py::TestFormatting::test_condition_action_specific_bad_type tests/unit/test_formatting.py::TestFormatting::test_condition_bad_key tests/unit/test_formatting.py::TestFormatting::test_condition_mismatch tests/unit/test_formatting.py::TestFormatting::test_condition_multiple tests/unit/test_formatting.py::TestFormatting::test_condition_operator