List of usage examples for com.amazonaws.services.ec2.model KeyPairInfo getKeyFingerprint
public String getKeyFingerprint()
If you used CreateKeyPair to create the key pair, this is the SHA-1 digest of the DER encoded private key.
From source file:aws.example.ec2.DescribeKeyPairs.java
License:Open Source License
public static void main(String[] args) { final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); DescribeKeyPairsResult response = ec2.describeKeyPairs(); for (KeyPairInfo key_pair : response.getKeyPairs()) { System.out.printf("Found key pair with name %s " + "and fingerprint %s", key_pair.getKeyName(), key_pair.getKeyFingerprint()); }// w w w . j a v a2 s . c o m }
From source file:com.cloudera.director.aws.ec2.EC2Provider.java
License:Apache License
/** * Returns the key name corresponding to the specified fingerprints, or {@code null} if it * cannot be determined.//from w w w .j ava 2 s. com * * @param privateKeyFingerprint the private key fingerprint * @param publicKeyFingerprint the public key fingerprint * @return the key name corresponding to the specified fingerprints, or {@code null} if it * cannot be determined */ private String lookupKeyName(String privateKeyFingerprint, String publicKeyFingerprint) { DescribeKeyPairsResult keyPairsResult = client.describeKeyPairs(); for (KeyPairInfo keyPairInfo : keyPairsResult.getKeyPairs()) { String knownFingerprint = keyPairInfo.getKeyFingerprint().replace(":", ""); LOG.debug("Found fingerprint {} for keyName {}", knownFingerprint, keyPairInfo.getKeyName()); if (privateKeyFingerprint.equals(knownFingerprint)) { return keyPairInfo.getKeyName(); } if (publicKeyFingerprint.equals(knownFingerprint)) { return keyPairInfo.getKeyName(); } } return null; }
From source file:com.zotoh.cloudapi.aws.Keypair.java
License:Open Source License
@Override public String getFingerprint(String name) throws InternalException, CloudException { tstEStrArg("keypair-name", name); String fp = null;//from w w w. ja v a 2s .com try { DescribeKeyPairsResult res = _svc.getCloud().getEC2() .describeKeyPairs(new DescribeKeyPairsRequest().withKeyNames(name)); List<KeyPairInfo> lst = res == null ? null : res.getKeyPairs(); KeyPairInfo p = isNil(lst) ? null : lst.get(0); fp = p == null ? null : p.getKeyFingerprint(); } catch (AmazonServiceException e) { if (!testSafeNonExistError(e, "InvalidKeyPair.NotFound")) { throw new CloudException(e); } } return fp; }
From source file:ec2.DescribeKeyPairs.java
License:Open Source License
public static void main(String[] args) { final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); DescribeKeyPairsResult response = ec2.describeKeyPairs(); for (KeyPairInfo keyPair : response.getKeyPairs()) { System.out.printf("Found key pair with name %s and fingerprint %s", keyPair.getKeyName(), keyPair.getKeyFingerprint()); }//www .j av a 2 s . c o m }
From source file:fr.xebia.cloud.amazon.aws.iam.AmazonAwsIamAccountCreator.java
License:Apache License
/** * <p>//from w w w.ja v a 2 s . c o m * Create an Amazon IAM account and send the details by email. * </p> * <p> * Created elements: * </p> * <ul> * <li>password to login to the management console if none exists,</li> * <li>accesskey if none is active,</li> * <li></li> * </ul> * * @param userName valid email used as userName of the created account. */ public void createUser(@Nonnull final String userName, GetGroupResult groupDescriptor, String keyPairName) throws Exception { Preconditions.checkNotNull(userName, "Given userName can NOT be null"); logger.info("Process user {}", userName); List<String> userAccountChanges = Lists.newArrayList(); Map<String, String> templatesParams = Maps.newHashMap(); templatesParams.put("awsCredentialsHome", "~/.aws"); templatesParams.put("awsCommandLinesHome", "/opt/amazon-aws"); User user; try { user = iam.getUser(new GetUserRequest().withUserName(userName)).getUser(); } catch (NoSuchEntityException e) { logger.debug("User {} does not exist, create it", userName, e); user = iam.createUser(new CreateUserRequest(userName)).getUser(); userAccountChanges.add("Create user"); } List<BodyPart> attachments = Lists.newArrayList(); // AWS WEB MANAGEMENT CONSOLE LOGIN & PASSWORD try { LoginProfile loginProfile = iam.getLoginProfile(new GetLoginProfileRequest(user.getUserName())) .getLoginProfile(); templatesParams.put("loginUserName", loginProfile.getUserName()); templatesParams.put("loginPassword", "#your password has already been generated and sent to you#"); logger.info("Login profile already exists {}", loginProfile); } catch (NoSuchEntityException e) { // manually add a number to ensure amazon policy is respected String password = RandomStringUtils.randomAlphanumeric(10) + random.nextInt(10); LoginProfile loginProfile = iam .createLoginProfile(new CreateLoginProfileRequest(user.getUserName(), password)) .getLoginProfile(); userAccountChanges.add("Create user.login"); templatesParams.put("loginUserName", loginProfile.getUserName()); templatesParams.put("loginPassword", password); } // ADD USER TO GROUP Group group = groupDescriptor.getGroup(); List<User> groupMembers = groupDescriptor.getUsers(); boolean isUserInGroup = Iterables.any(groupMembers, new Predicate<User>() { public boolean apply(User groupMember) { return userName.equals(groupMember.getUserName()); } ; }); if (!isUserInGroup) { logger.debug("Add user {} to group {}", user, group); iam.addUserToGroup(new AddUserToGroupRequest(group.getGroupName(), user.getUserName())); groupMembers.add(user); userAccountChanges.add("Add user to group"); } // ACCESS KEY boolean activeAccessKeyExists = false; ListAccessKeysResult listAccessKeysResult = iam .listAccessKeys(new ListAccessKeysRequest().withUserName(user.getUserName())); for (AccessKeyMetadata accessKeyMetadata : listAccessKeysResult.getAccessKeyMetadata()) { StatusType status = StatusType.fromValue(accessKeyMetadata.getStatus()); if (StatusType.Active.equals(status)) { logger.info("Access key {} ({}) is already active, don't create another one.", accessKeyMetadata.getAccessKeyId(), accessKeyMetadata.getCreateDate()); activeAccessKeyExists = true; templatesParams.put("accessKeyId", accessKeyMetadata.getAccessKeyId()); templatesParams.put("accessKeySecretId", "#accessKey has already been generated and the secretId has been sent to you#"); break; } } if (!activeAccessKeyExists) { AccessKey accessKey = iam.createAccessKey(new CreateAccessKeyRequest().withUserName(user.getUserName())) .getAccessKey(); userAccountChanges.add("Create user.accessKey"); logger.debug("Created access key {}", accessKey); templatesParams.put("accessKeyId", accessKey.getAccessKeyId()); templatesParams.put("accessKeySecretId", accessKey.getSecretAccessKey()); // email attachment: aws-credentials.txt { BodyPart awsCredentialsBodyPart = new MimeBodyPart(); awsCredentialsBodyPart.setFileName("aws-credentials.txt"); templatesParams.put("attachedCredentialsFileName", awsCredentialsBodyPart.getFileName()); String awsCredentials = FreemarkerUtils.generate(templatesParams, "/fr/xebia/cloud/amazon/aws/iam/aws-credentials.txt.ftl"); awsCredentialsBodyPart.setContent(awsCredentials, "text/plain"); attachments.add(awsCredentialsBodyPart); } } // SSH KEY PAIR if (keyPairName == null) { // If keyPairName is null, generate it from the username if (userName.endsWith("@xebia.fr") || userName.endsWith("@xebia.com")) { keyPairName = userName.substring(0, userName.indexOf("@xebia.")); } else { keyPairName = userName.replace("@", "_at_").replace(".", "_dot_").replace("+", "_plus_"); } } try { List<KeyPairInfo> keyPairInfos = ec2 .describeKeyPairs(new DescribeKeyPairsRequest().withKeyNames(keyPairName)).getKeyPairs(); KeyPairInfo keyPairInfo = Iterables.getOnlyElement(keyPairInfos); logger.info("SSH key {} already exists. Don't overwrite it.", keyPairInfo.getKeyName()); templatesParams.put("sshKeyName", keyPairInfo.getKeyName()); templatesParams.put("sshKeyFingerprint", keyPairInfo.getKeyFingerprint()); String sshKeyFileName = keyPairName + ".pem"; URL sshKeyFileURL = Thread.currentThread().getContextClassLoader().getResource(sshKeyFileName); if (sshKeyFileURL != null) { logger.info("SSH Key file {} found.", sshKeyFileName); BodyPart keyPairBodyPart = new MimeBodyPart(); keyPairBodyPart.setFileName(sshKeyFileName); templatesParams.put("attachedSshKeyFileName", keyPairBodyPart.getFileName()); keyPairBodyPart.setContent(Resources.toString(sshKeyFileURL, Charsets.ISO_8859_1), "application/x-x509-ca-cert"); attachments.add(keyPairBodyPart); } else { logger.info("SSH Key file {} NOT found.", sshKeyFileName); } } catch (AmazonServiceException e) { if ("InvalidKeyPair.NotFound".equals(e.getErrorCode())) { // ssh key does not exist, create it KeyPair keyPair = ec2.createKeyPair(new CreateKeyPairRequest(keyPairName)).getKeyPair(); userAccountChanges.add("Create ssh key"); logger.info("Created ssh key {}", keyPair); templatesParams.put("sshKeyName", keyPair.getKeyName()); templatesParams.put("sshKeyFingerprint", keyPair.getKeyFingerprint()); BodyPart keyPairBodyPart = new MimeBodyPart(); keyPairBodyPart.setFileName(keyPair.getKeyName() + ".pem"); templatesParams.put("attachedSshKeyFileName", keyPairBodyPart.getFileName()); keyPairBodyPart.setContent(keyPair.getKeyMaterial(), "application/x-x509-ca-cert"); attachments.add(keyPairBodyPart); } else { throw e; } } // X509 SELF SIGNED CERTIFICATE Collection<SigningCertificate> certificates = iam .listSigningCertificates(new ListSigningCertificatesRequest().withUserName(userName)) .getCertificates(); // filter active certificates certificates = Collections2.filter(certificates, new Predicate<SigningCertificate>() { @Override public boolean apply(SigningCertificate signingCertificate) { return StatusType.Active.equals(StatusType.fromValue(signingCertificate.getStatus())); } }); if (certificates.isEmpty()) { java.security.KeyPair x509KeyPair = keyPairGenerator.generateKeyPair(); X509Certificate x509Certificate = generateSelfSignedX509Certificate(userName, x509KeyPair); String x509CertificatePem = Pems.pem(x509Certificate); UploadSigningCertificateResult uploadSigningCertificateResult = iam.uploadSigningCertificate( // new UploadSigningCertificateRequest(x509CertificatePem).withUserName(user.getUserName())); SigningCertificate signingCertificate = uploadSigningCertificateResult.getCertificate(); templatesParams.put("x509CertificateId", signingCertificate.getCertificateId()); userAccountChanges.add("Create x509 certificate"); logger.info("Created x509 certificate {}", signingCertificate); // email attachment: x509 private key { BodyPart x509PrivateKeyBodyPart = new MimeBodyPart(); x509PrivateKeyBodyPart.setFileName("pk-" + signingCertificate.getCertificateId() + ".pem"); templatesParams.put("attachedX509PrivateKeyFileName", x509PrivateKeyBodyPart.getFileName()); String x509privateKeyPem = Pems.pem(x509KeyPair.getPrivate()); x509PrivateKeyBodyPart.setContent(x509privateKeyPem, "application/x-x509-ca-cert"); attachments.add(x509PrivateKeyBodyPart); } // email attachment: x509 certifiate pem { BodyPart x509CertificateBodyPart = new MimeBodyPart(); x509CertificateBodyPart.setFileName("cert-" + signingCertificate.getCertificateId() + ".pem"); templatesParams.put("attachedX509CertificateFileName", x509CertificateBodyPart.getFileName()); x509CertificateBodyPart.setContent(x509CertificatePem, "application/x-x509-ca-cert"); attachments.add(x509CertificateBodyPart); } } else { SigningCertificate signingCertificate = Iterables.getFirst(certificates, null); logger.info("X509 certificate {} already exists", signingCertificate.getCertificateId()); templatesParams.put("x509CertificateId", signingCertificate.getCertificateId()); } sendEmail(templatesParams, attachments, userName); }
From source file:hudson.plugins.ec2.EC2AxisPrivateKey.java
License:Open Source License
/** * Finds the {@link KeyPairInfo} that corresponds to this key in EC2. *///from www.j av a2 s . c o m public com.amazonaws.services.ec2.model.KeyPair find(AmazonEC2 ec2) throws IOException, AmazonClientException { String fp = getFingerprint(); for (KeyPairInfo kp : ec2.describeKeyPairs().getKeyPairs()) { if (kp.getKeyFingerprint().equalsIgnoreCase(fp)) { com.amazonaws.services.ec2.model.KeyPair keyPair = new com.amazonaws.services.ec2.model.KeyPair(); keyPair.setKeyName(kp.getKeyName()); keyPair.setKeyFingerprint(fp); keyPair.setKeyMaterial(Secret.toString(privateKey)); return keyPair; } } return null; }
From source file:hudson.plugins.ec2.EC2PrivateKey.java
License:Open Source License
/** * Finds the {@link KeyPairInfo} that corresponds to this key in EC2. *///from w w w . j a v a 2 s . c o m public com.amazonaws.services.ec2.model.KeyPair find(AmazonEC2 ec2) throws IOException, AmazonClientException { String fp = getFingerprint(); String pfp = getPublicFingerprint(); for (KeyPairInfo kp : ec2.describeKeyPairs().getKeyPairs()) { if (kp.getKeyFingerprint().equalsIgnoreCase(fp)) { com.amazonaws.services.ec2.model.KeyPair keyPair = new com.amazonaws.services.ec2.model.KeyPair(); keyPair.setKeyName(kp.getKeyName()); keyPair.setKeyFingerprint(fp); keyPair.setKeyMaterial(Secret.toString(privateKey)); return keyPair; } if (kp.getKeyFingerprint().equalsIgnoreCase(pfp)) { com.amazonaws.services.ec2.model.KeyPair keyPair = new com.amazonaws.services.ec2.model.KeyPair(); keyPair.setKeyName(kp.getKeyName()); keyPair.setKeyFingerprint(pfp); keyPair.setKeyMaterial(Secret.toString(privateKey)); return keyPair; } } return null; }
From source file:jp.primecloud.auto.aws.typica.converter.KeyPairInfoConverter.java
License:Open Source License
@Override protected KeyPairInfo convertObject(com.xerox.amazonws.ec2.KeyPairInfo from) { KeyPairInfo to = new KeyPairInfo(); to.setKeyName(from.getKeyName());/*w w w. j a v a2 s.com*/ to.setKeyFingerprint(from.getKeyFingerprint()); return to; }
From source file:org.excalibur.service.aws.ec2.EC2.java
License:Open Source License
public List<KeyPair> getKeyPairs() { List<KeyPair> keyPairs = new ArrayList<KeyPair>(); DescribeKeyPairsResult availableKeyPairs = ec2_.describeKeyPairs(); for (KeyPairInfo keyInfo : availableKeyPairs.getKeyPairs()) { keyPairs.add(new KeyPair(keyInfo.getKeyName()).withKeyFingerprint(keyInfo.getKeyFingerprint())); }/*from www . j a va 2 s . c o m*/ return Collections.unmodifiableList(keyPairs); }
From source file:org.excalibur.service.aws.ec2.EC2.java
License:Open Source License
public KeyPair getKeyPair(String keyName) { KeyPair keyPair = null;// w ww. j a v a 2s. c o m if (!isNullOrEmpty(keyName)) { try { DescribeKeyPairsResult describeKeyPairs = ec2_ .describeKeyPairs(new DescribeKeyPairsRequest().withKeyNames(keyName)); List<KeyPairInfo> keyPairs = describeKeyPairs.getKeyPairs(); if (keyPairs != null && !keyPairs.isEmpty()) { KeyPairInfo keyPairInfo = keyPairs.get(0); keyPair = new KeyPair(keyPairInfo.getKeyName()) .withKeyFingerprint(keyPairInfo.getKeyFingerprint()); } } catch (AmazonClientException exception) { LOG.debug("Error on describing keyPairs [{}] on [{}]. Error message: [{}]", keyName, credentials_.getProvider().getName(), exception.getMessage()); } } return keyPair; }