@@ -216,11 +216,7 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
216216 // Usually, there will only be 1 credential that we manage, but an error persisting
217217 // credentials might leave an un-managed credential which we can just delete. It is better
218218 // to delete as otherwise, we may hit a max credential limit for this IAM user.
219- DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest ();
220- deleteAccessKeyRequest .setUserName (iamUser );
221- deleteAccessKeyRequest .setAccessKeyId (accessKeyMetadata .getAccessKeyId ());
222- logger .info ("Deleting un-managed IAM AccessKeyId {} for IAM User {}" , accessKeyMetadata .getAccessKeyId (), iamUser );
223- iamClient .deleteAccessKey (deleteAccessKeyRequest );
219+ deleteIAMCredential (iamClient , iamUser , accessKeyMetadata .getAccessKeyId ());
224220 }
225221 } catch (NoSuchEntityException e ) {
226222 // No IAM User. Ignore and fix this below.
@@ -246,11 +242,7 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
246242 logger .debug ("Looking for any un-managed IAM credentials for IAM User {}" , iamUser );
247243 ListAccessKeysResult listRes = iamClient .listAccessKeys (new ListAccessKeysRequest ().withUserName (iamUser ));
248244 for (AccessKeyMetadata accessKeyMetadata : listRes .getAccessKeyMetadata ()) {
249- DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest ();
250- deleteAccessKeyRequest .setUserName (iamUser );
251- deleteAccessKeyRequest .setAccessKeyId (accessKeyMetadata .getAccessKeyId ());
252- logger .info ("Deleting un-managed IAM AccessKeyId {} for IAM User {}" , accessKeyMetadata .getAccessKeyId (), iamUser );
253- iamClient .deleteAccessKey (deleteAccessKeyRequest );
245+ deleteIAMCredential (iamClient , iamUser , accessKeyMetadata .getAccessKeyId ());
254246 }
255247 }
256248
@@ -260,6 +252,21 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
260252 return iamAccessKey ;
261253 }
262254
255+ /**
256+ * Delete an IAM Credential.
257+ *
258+ * @param iamClient a valid iam connection
259+ * @param iamUser the IAM user that owns the credential to delete.
260+ * @param accessKeyId The IAM credential to delete
261+ */
262+ protected void deleteIAMCredential (AmazonIdentityManagement iamClient , String iamUser , String accessKeyId ) {
263+ DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest ();
264+ deleteAccessKeyRequest .setUserName (iamUser );
265+ deleteAccessKeyRequest .setAccessKeyId (accessKeyId );
266+ logger .info ("Deleting un-managed IAM AccessKeyId {} for IAM User {}" , accessKeyId , iamUser );
267+ iamClient .deleteAccessKey (deleteAccessKeyRequest );
268+ }
269+
263270 /**
264271 * Persist the Root and IAM user credentials with the Account as required.
265272 * @param storeId the store
0 commit comments