Skip to content

Commit 25bd5f8

Browse files
author
sivaram-mongodb
committed
CLOUDP-372605-encryption-at-rest: handle missing IAM role check in encryption test
1 parent d40c248 commit 25bd5f8

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

cfn-resources/encryption-at-rest/test/cfn-test-create-inputs.sh

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,23 @@ echo "--------------------------------create key and key policy document policy
8181
echo "$policyDocument"
8282
echo "--------------------------------policy document finished ----------------------------"
8383

84-
roleID=$(atlas cloudProviders accessRoles aws create --projectId "${projectId}" --output json | jq -r '.roleId')
85-
echo "roleID: $roleID"
84+
roleID=$(atlas cloudProviders accessRoles aws create --output json | jq -r '.roleId')
8685
echo "--------------------------------Mongo CLI Role creation ends ----------------------------"
8786

88-
atlasAWSAccountArn=$(atlas cloudProviders accessRoles list --projectId "${projectId}" --output json | jq --arg roleID "${roleID}" -r '.awsIamRoles[] |select(.roleId |test( $roleID)) |.atlasAWSAccountArn')
89-
atlasAssumedRoleExternalId=$(atlas cloudProviders accessRoles list --projectId "${projectId}" --output json | jq --arg roleID "${roleID}" -r '.awsIamRoles[] |select(.roleId |test( $roleID)) |.atlasAssumedRoleExternalId')
87+
atlasAWSAccountArn=$(atlas cloudProviders accessRoles list --output json | jq --arg roleID "${roleID}" -r '.awsIamRoles[] |select(.roleId |test( $roleID)) |.atlasAWSAccountArn')
88+
atlasAssumedRoleExternalId=$(atlas cloudProviders accessRoles list --output json | jq --arg roleID "${roleID}" -r '.awsIamRoles[] |select(.roleId |test( $roleID)) |.atlasAssumedRoleExternalId')
9089
jq --arg atlasAssumedRoleExternalId "$atlasAssumedRoleExternalId" \
9190
--arg atlasAWSAccountArn "$atlasAWSAccountArn" \
9291
'.Statement[0].Principal.AWS?|=$atlasAWSAccountArn | .Statement[0].Condition.StringEquals["sts:ExternalId"]?|=$atlasAssumedRoleExternalId' "$(dirname "$0")/role-policy-template.json" >"$(dirname "$0")/add-policy.json"
9392
echo cat add-policy.json
9493
echo "--------------------------------AWS Role creation ends ----------------------------"
9594

96-
awsRoleID=$(aws iam get-role --role-name "${roleName}" | jq --arg roleName "${roleName}" -r '.Role | select(.RoleName==$roleName) |.RoleId')
95+
awsRoleID=$(aws iam get-role --role-name "${roleName}" 2>/dev/null | jq --arg roleName "${roleName}" -r '.Role | select(.RoleName==$roleName) |.RoleId' || true)
9796
if [ -z "$awsRoleID" ]; then
9897
awsRoleID=$(aws iam create-role --role-name "${roleName}" --assume-role-policy-document file://"$(dirname "$0")"/add-policy.json | jq --arg roleName "${roleName}" -r '.Role | select(.RoleName==$roleName) |.RoleId')
9998
echo -e "No role found, hence creating the role. Created id: ${awsRoleID}\n"
10099
else
101-
aws iam delete-role-policy --role-name "${roleName}" --policy-name "${policyName}"
100+
aws iam delete-role-policy --role-name "${roleName}" --policy-name "${policyName}" 2>/dev/null || true
102101
aws iam delete-role --role-name "${roleName}"
103102
awsRoleID=$(aws iam create-role --role-name "${roleName}" --assume-role-policy-document file://"$(dirname "$0")"/add-policy.json | jq --arg roleName "${roleName}" -r '.Role | select(.RoleName==$roleName) |.RoleId')
104103
echo -e "FOUND id: ${awsRoleID}\n"
@@ -116,7 +115,7 @@ awsArne=$(echo "${awsArn}" | sed 's/"//g')
116115
#TODO Needs change to while loop using get operation
117116
sleep 65
118117

119-
atlas cloudProviders accessRoles aws authorize "${roleID}" --projectId "${projectId}" --iamAssumedRoleArn "${awsArne}"
118+
atlas cloudProviders accessRoles aws authorize "${roleID}" --iamAssumedRoleArn "${awsArne}"
120119
echo "--------------------------------authorize mongodb Role ends ----------------------------"
121120

122121
jq --arg projectId "$projectId" \

cfn-resources/encryption-at-rest/test/cfn-test-delete-inputs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ roleExternalID="${trustPolicy##*/}"
3939
atlasAssumedRoleExternalID=$(echo "${roleExternalID}" | sed 's/"//g')
4040
echo "$atlasAssumedRoleExternalID"
4141

42-
roleId=$(atlas cloudProviders accessRoles list --projectId "${projectId}" --output json | jq --arg roleID "${atlasAssumedRoleExternalID}" -r '.awsIamRoles[] |select(.atlasAssumedRoleExternalId |test( $roleID)) |.roleId')
42+
roleId=$(atlas cloudProviders accessRoles list --output json | jq --arg roleID "${atlasAssumedRoleExternalID}" -r '.awsIamRoles[] |select(.atlasAssumedRoleExternalId |test( $roleID)) |.roleId')
4343
echo "$roleId"
4444

45-
atlas cloudProviders accessRoles aws deauthorize "${roleId}" --projectId "${projectId}" --force
45+
atlas cloudProviders accessRoles aws deauthorize "${roleId}" --force
4646
echo "--------------------------------delete role starts ----------------------------"
4747

4848
aws iam delete-role-policy --role-name "$roleName" --policy-name "$policyName"

0 commit comments

Comments
 (0)