aws-ia / terraform-aws-control_tower_account_factory

AWS Control Tower Account Factory
Apache License 2.0
604 stars 386 forks source link

aft_account_provisioning_framework_account_metadata_ssm -> Parameter name: can't be prefixed with \\\"ssm\\\" #467

Closed burhan-mahmood closed 2 weeks ago

burhan-mahmood commented 3 weeks ago

I am running AFT 1.12.2 but having issue with account customization pipeline. Although I am able to create new accounts using AFT but account-customization fails. The step functions state machine aft-account-provisioning-framework throws below error. Has anyone come across this and know what the issue is please? Many thanks

"Error": "ClientError", "Cause": "{\"errorMessage\":\"An error occurred (ValidationException) when calling the PutParameter operation: Parameter name: can't be prefixed with \\\"ssm\\\" (case-insensitive). If formed as a path, it can consist of sub-paths divided by slash symbol; each sub-path can be formed as a mix of letters, numbers and the following 3 symbols .-_\",\"errorType\":\"ClientError\",\"requestId\":\"xxxx-[REDACTED]-xxxx\",\"stackTrace\":[\" File \\\"/var/task/aft_account_provisioning_framework_account_metadata_ssm.py\\\", line 85, in lambda_handler\\n put_ssm_parameters(target_account_session, custom_fields)\\n\",\" File \\\"/opt/python/lib/python3.11/site-packages/aft_common/aft_utils.py\\\", line 98, in wrapper\\n raise e\\n\",\" File \\\"/opt/python/lib/python3.11/site-packages/aft_common/aft_utils.py\\\", line 78, in wrapper\\n return func(*args, **kwargs)\\n\",\" File \\\"/opt/python/lib/python3.11/site-packages/aft_common/ssm.py\\\", line 23, in put_ssm_parameters\\n response = client.put_parameter(\\n\",\" File \\\"/opt/python/lib/python3.11/site-packages/botocore/client.py\\\", line 534, in _api_call\\n return self._make_api_call(operation_name, kwargs)\\n\",\" File \\\"/opt/python/lib/python3.11/site-packages/botocore/client.py\\\", line 976, in _make_api_call\\n raise error_class(parsed_response, operation_name)\\n\"]}" }

burhan-mahmood commented 2 weeks ago

Issue was due to the custom field key-value pair having the key wrapped around speech mark (" "). When it was passed through put_ssm_parameters( ) function in the python script, it didn't like it. Hence the error. Removing the speech mark resolved the issue. 👍