Java源码示例:com.amazonaws.services.identitymanagement.model.ListRolesResult
示例1
/**
* Fetch IAM roles.
*
* @param temporaryCredentials the temporary credentials
* @param accountId the accountId
* @param accountName the account name
* @return the map
*/
public static Map<String,List<Role>> fetchIAMRoles(BasicSessionCredentials temporaryCredentials,String accountId,String accountName) {
AmazonIdentityManagement iamClient = AmazonIdentityManagementClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(temporaryCredentials)).withRegion(InventoryConstants.REGION_US_WEST_2).build();
List<Role> roles = new ArrayList<>();
ListRolesResult rslt;
String marker = null;
do{
rslt = iamClient.listRoles(new ListRolesRequest().withMarker(marker));
roles.addAll(rslt.getRoles());
marker = rslt.getMarker();
}while(marker!=null);
log.debug(InventoryConstants.ACCOUNT + accountId +" Type : IAM Roles >> "+roles.size());
Map<String,List<Role>> iamRoles = new HashMap<>();
iamRoles.put(accountId+delimiter+accountName, roles);
return iamRoles;
}
示例2
/**
* Fetch IAM roles test.
*
* @throws Exception the exception
*/
@SuppressWarnings("static-access")
@Test
public void fetchIAMRolesTest() throws Exception {
mockStatic(AmazonIdentityManagementClientBuilder.class);
AmazonIdentityManagement iamClient = PowerMockito.mock(AmazonIdentityManagement.class);
AmazonIdentityManagementClientBuilder amazonIdentityManagementClientBuilder = PowerMockito.mock(AmazonIdentityManagementClientBuilder.class);
AWSStaticCredentialsProvider awsStaticCredentialsProvider = PowerMockito.mock(AWSStaticCredentialsProvider.class);
PowerMockito.whenNew(AWSStaticCredentialsProvider.class).withAnyArguments().thenReturn(awsStaticCredentialsProvider);
when(amazonIdentityManagementClientBuilder.standard()).thenReturn(amazonIdentityManagementClientBuilder);
when(amazonIdentityManagementClientBuilder.withCredentials(anyObject())).thenReturn(amazonIdentityManagementClientBuilder);
when(amazonIdentityManagementClientBuilder.withRegion(anyString())).thenReturn(amazonIdentityManagementClientBuilder);
when(amazonIdentityManagementClientBuilder.build()).thenReturn(iamClient);
ListRolesResult listRolesResult = new ListRolesResult();
List<Role> roles = new ArrayList<>();
roles.add(new Role());
listRolesResult.setRoles(roles);
when(iamClient.listRoles(anyObject())).thenReturn(listRolesResult);
assertThat(inventoryUtil.fetchIAMRoles(new BasicSessionCredentials("awsAccessKey", "awsSecretKey", "sessionToken"),"account","accountName").size(), is(1));
}
示例3
@Test
public void testAutoSuggestion() throws Exception {
ListRolesRequest request = new ListRolesRequest().withMaxItems(1000);
Role role1 = new Role().withRoleName("foobar1");
Role role2 = new Role().withRoleName("afoobar");
Role role3 = new Role().withRoleName("foooobar");
ListRolesResult mockResult = new ListRolesResult();
mockResult.withRoles(role1, role2, role3);
when(mockClient.listRoles(request)).thenReturn(mockResult);
List<Principal> list = partiallyMockedPrincipalAutoSuggestion.autoSuggestion("foobar");
assertEquals(list.size(), 2);
assertEquals(list.get(0).name, "foobar1");
assertEquals(list.get(1).name, "afoobar");
verify(mockClient, times(1)).listRoles(request);
}
示例4
@Test
public void testAutoSuggestionCaseInsensitive() throws Exception {
ListRolesRequest request = new ListRolesRequest().withMaxItems(1000);
Role lowercase = new Role().withRoleName("foobar");
Role uppercase = new Role().withRoleName("FOOBAR");
Role mixedCase = new Role().withRoleName("FooBar");
ListRolesResult mockResult = new ListRolesResult();
mockResult.withRoles(lowercase, uppercase, mixedCase);
when(mockClient.listRoles(request)).thenReturn(mockResult);
List<Principal> list = partiallyMockedPrincipalAutoSuggestion.autoSuggestion("fOOb");
assertEquals(list.size(), 3);
assertEquals(list.get(0).name, "foobar");
assertEquals(list.get(1).name, "FOOBAR");
assertEquals(list.get(2).name, "FooBar");
}
示例5
@Before
public void setUp() throws Exception {
this.violationSinkMock = mock(ViolationSink.class);
this.clientProviderMock = mock(ClientProvider.class);
this.accountIdSupplierMock = mock(AccountIdSupplier.class);
this.jobsPropertiesMock = mock(JobsProperties.class);
this.mockAmazonIdentityManagementClient = mock(AmazonIdentityManagementClient.class);
this.mockAwsApplications = mock(AwsApplications.class);
mockListRolesResult = new ListRolesResult();
mockListRolesResult.setRoles(asList(
createRole("aws-service-role", AWS_SERVICE_POLICY_DOCUMENT),
createRole("cross-account-role", CROSS_ACCOUNT_POLICY_DOCUMENT),
createRole("same-account-role", SAME_ACCOUNT_POLICY_DOCUMENT),
createRole("deleted-role-reference-role", DELETED_ROLE_POLICY_DOCUMENT),
createRole("management-account-role", MANAGEMENT_POLICY_DOCUMENT)));
when(clientProviderMock.getClient(any(), any(String.class), any(Region.class))).thenReturn(mockAmazonIdentityManagementClient);
}
示例6
public List<Principal> autoSuggestion(final String name) {
if (name.length() >= 3) {
String lowerCaseName = name.toLowerCase();
ListRolesRequest listRolesRequest = new ListRolesRequest();
listRolesRequest.withMaxItems(1000);
ListRolesResult result = client.listRoles(listRolesRequest);
List<Principal> tmp = result.getRoles().stream()
.filter(p -> p.getRoleName().toLowerCase().contains(lowerCaseName))
.map(p -> new Principal(PrincipalType.ROLE, p.getRoleName())).collect(Collectors.toList());
return tmp.subList(0, Math.min(5, tmp.size()));
}
return new ArrayList<>();
}
示例7
private Set<CloudAccessConfig> getAccessConfigByRole(AmazonIdentityManagement client) {
LOGGER.info("Get all Roles from Amazon");
String queryFailedMessage = "Could not get roles from Amazon: ";
try {
boolean finished = false;
String marker = null;
List<Role> roles = new LinkedList<>();
while (!finished) {
ListRolesRequest listRolesRequest = new ListRolesRequest();
listRolesRequest.setMaxItems(fetchMaxItems);
if (isNotEmpty(marker)) {
listRolesRequest.setMarker(marker);
}
LOGGER.debug("About to fetch roles...");
ListRolesResult listRolesResult = client.listRoles(listRolesRequest);
roles.addAll(listRolesResult.getRoles());
if (listRolesResult.isTruncated()) {
marker = listRolesResult.getMarker();
} else {
finished = true;
}
}
return roles.stream().map(this::roleToCloudAccessConfig).collect(Collectors.toSet());
} catch (AmazonServiceException ase) {
if (ase.getStatusCode() == UNAUTHORIZED) {
String policyMessage = "Could not get roles because the user does not have enough permission. ";
LOGGER.error(policyMessage + ase.getMessage(), ase);
throw new CloudUnauthorizedException(ase.getErrorMessage(), ase);
} else {
LOGGER.info(queryFailedMessage + ase.getMessage(), ase);
throw new CloudConnectorException(ase.getMessage(), ase);
}
} catch (Exception e) {
LOGGER.warn(queryFailedMessage + e.getMessage(), e);
throw new CloudConnectorException(e.getMessage(), e);
}
}