/* * Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /** * <fullname>AWS Key Management Service</fullname> * <p> * AWS Key Management Service (AWS KMS) is an encryption and key management web service. This guide describes the AWS * KMS operations that you can call programmatically. For general information about AWS KMS, see the <a * href="http://docs.aws.amazon.com/kms/latest/developerguide/">AWS Key Management Service Developer Guide</a>. * </p> * <note> * <p> * AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, * Ruby, .Net, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWS KMS and other * AWS services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and * retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, * see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. * </p> * </note> * <p> * We recommend that you use the AWS SDKs to make programmatic API calls to AWS KMS. * </p> * <p> * Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support cipher * suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral * Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes. * </p> * <p> * <b>Signing Requests</b> * </p> * <p> * Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you <i>do * not</i> use your AWS account (root) access key ID and secret key for everyday work with AWS KMS. Instead, use the * access key ID and secret access key for an IAM user, or you can use the AWS Security Token Service to generate * temporary security credentials that you can use to sign requests. * </p> * <p> * All AWS KMS operations require <a * href="http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. * </p> * <p> * <b>Logging API Requests</b> * </p> * <p> * AWS KMS supports AWS CloudTrail, a service that logs AWS API calls and related events for your AWS account and * delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can * determine what requests were made to AWS KMS, who made the request, when it was made, and so on. To learn more about * CloudTrail, including how to turn it on and find your log files, see the <a * href="http://docs.aws.amazon.com/awscloudtrail/latest/userguide/">AWS CloudTrail User Guide</a>. * </p> * <p> * <b>Additional Resources</b> * </p> * <p> * For more information about credentials and request signing, see the following: * </p> * <ul> * <li> * <p> * <a href="http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html">AWS Security Credentials</a> - * This topic provides general information about the types of credentials used for accessing AWS. * </p> * </li> * <li> * <p> * <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html">Temporary Security Credentials</a> * - This section of the <i>IAM User Guide</i> describes how to create and use temporary security credentials. * </p> * </li> * <li> * <p> * <a href="http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing * Process</a> - This set of topics walks you through the process of signing a request using an access key ID and a * secret access key. * </p> * </li> * </ul> * <p> * <b>Commonly Used APIs</b> * </p> * <p> * Of the APIs discussed in this guide, the following will prove the most useful for most applications. You will likely * perform actions other than these, such as creating keys and assigning policies, by using the console. * </p> * <ul> * <li> * <p> * <a>Encrypt</a> * </p> * </li> * <li> * <p> * <a>Decrypt</a> * </p> * </li> * <li> * <p> * <a>GenerateDataKey</a> * </p> * </li> * <li> * <p> * <a>GenerateDataKeyWithoutPlaintext</a> * </p> * </li> * </ul> */ package com.amazonaws.services.kms;