AWS Key Management Service
開発者ガイド

キーの作成

カスタマーマスターキー (CMK) は、AWS マネジメントコンソールまたは CreateKey オペレーションを使用して作成できます。

CMK の作成 (コンソール)

AWS マネジメントコンソール を使用してカスタマーマスターキー (CMK) を作成できます。

注記

AWS KMS は最近、KMS リソースを整理や管理が簡単にできる、新しいコンソールを導入しました。https://console.aws.amazon.com/kms でお試しいただくことをお勧めします。コンソールまたはこのページの右下隅にある、[Feedback (フィードバック)] を選択して、フィードバックをお知らせください。

新しいコンソールに精通できるように、元のコンソールは短期間ながら引き続き参照できます。元のコンソールを使用するには、https://console.aws.amazon.com/iam/home#encryptionKeys に移動します。

新しい CMK を作成するには (新しいコンソール)
  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. 左のナビゲーションペインで、暗号化キーを選択します。

  3. フィルタ で、AWS の該当するリージョンを選択します。

  4. ナビゲーションペインで、[Customer managed keys (カスタマー管理型のキー)] を選択します。

  5. [キーの作成] を選択します。

  6. CMK のエイリアスを入力します。エイリアス名の先頭を aws/ にすることはできません。aws/ プレフィックスは、アカウントの AWS 管理 CMK を表すために Amazon Web Services によって予約されています。

    エイリアスは CMK を識別するために使用できる表示名です。保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    エイリアスは、AWS マネジメントコンソールで CMK を作成するときに必要です。CreateKey オペレーションを使用する場合はオプションです。

  7. (オプション) CMK の説明を入力します。

    保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを表す説明を選択することをお勧めします。

  8. [次へ] を選択します。

  9. (オプション) タグキーとオプションのタグ値を入力します。CMK に複数のタグを追加するには、[Add tag] を選択します。

    AWS リソースにタグを追加すると、使用量とコストがタグごとに集計されたコスト配分レポートが AWS によって生成されます。CMK にタグ付けする方法の詳細については、「キーのタグ付け」を参照してください。

  10. [次へ] を選択します。

  11. CMK を管理できる IAM ユーザーとロールを選択します。

    注記

    IAM ポリシーによって、CMK を管理するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

  12. (オプション) 選択した IAM ユーザーおよびロールがこの CMK を削除できないようにするには、ページの下部にある [Key deletion (キーの削除)] セクションで [Allow key administrators to delete this key (キーの管理者がこのキーを削除できるようにします。)] チェックボックスをオフにします。

  13. [次へ] を選択します。

  14. 暗号化オペレーションに CMK を使用できる IAM ユーザーとロールを選択します。

    注記

    AWS アカウント (root ユーザー) には、デフォルトで完全なアクセス権限があります。そのため、IAM ポリシーによって、暗号化オペレーションに CMK を使用するアクセス許可をユーザーとロールに付与することもできます。

  15. (オプション) 他の AWS アカウントが暗号化オペレーションにこの CMK を使用するようにできます。これを行うには、ページの下部にある [Other AWS accounts (別の AWS アカウント)] セクションで [Add another AWS account (別の AWS アカウントを追加する)] を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。

    注記

    外部アカウントのプリンシパルが CMK を使用できるようにするには、外部アカウントの管理者が、これらのアクセス許可を提供する IAM ポリシーを作成する必要があります。詳細については、「外部 AWS アカウントの CMK へのアクセスの許可」を参照してください。

  16. [次へ] を選択します。

  17. 選択した内容で作成されたキーポリシードキュメントを確認します。これを編集することもできます。

  18. [Finish] を選択し、CMK を作成します。

ヒント

プログラムおよびコマンドラインインターフェイスオペレーションで新しい CMK を使用するには、キー ID またはキー ARN が必要です。詳細な手順については、「キー ID と ARN を検索する」を参照してください。

新しい CMK を作成するには (元のコンソール)
  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/iam/home#encryptionKeys に移動します。

  2. [リージョン] で、AWS の該当するリージョンを選択します。ナビゲーションバー (右上) にあるリージョンセレクタを使用しないでください。

  3. [キーの作成] を選択します。

  4. CMK のエイリアスを入力します。エイリアス名の先頭を aws にすることはできません。aws プレフィックスは、アカウントの AWS 管理 CMK を示すために Amazon Web Services によって予約されています。

    エイリアスは CMK を識別するために使用できる表示名です。保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    エイリアスは、AWS マネジメントコンソールで CMK を作成するときに必要です。CreateKey オペレーションを使用する場合はオプションです。

  5. (オプション) CMK の説明を入力します。

    保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを表す説明を選択することをお勧めします。

  6. [Next Step] を選択します。

  7. (オプション) タグキーとオプションのタグ値を入力します。CMK に複数のタグを追加するには、[Add tag] を選択します。

  8. [Next Step] を選択します。

  9. CMK を管理できる IAM ユーザーとロールを選択します。

    注記

    AWS アカウント (root ユーザー) には、デフォルトで完全なアクセス権限があります。したがって、アタッチされたポリシーによって適切なアクセス権限が付与されている IAM ユーザーとロールも、CMK を管理できます。

  10. (オプション) 前のステップで選択した IAM ユーザーおよびロールがこの CMK を削除できないようにするには、ページの下部にある [キーの管理者がこのキーを削除できるようにします。] チェックボックスをオフにします。

  11. [Next Step] を選択します。

  12. CMK を使用して AWS KMS API でデータを暗号化および復号できる IAM ユーザーとロールを選択します。

    注記

    AWS アカウント (root ユーザー) には、デフォルトで完全なアクセス権限があります。したがって、アタッチされたポリシーによって適切なアクセス権限が付与されている IAM ユーザーとロールも、CMK を使用できます。

  13. (オプション) ページの下部にあるコントロールを使用すると、この CMK でデータを暗号化および復号できるその他の AWS アカウントを指定できます。そのためには、[外部アカウントの追加] を選択し、目的の AWS アカウント ID を入力します。必要に応じて手順を繰り返し、外部アカウントを複数追加します。

    注記

    外部アカウントの管理者が、ユーザーの IAM ポリシーを作成して、CMK へのアクセスを許可する必要があります。詳細については、「外部 AWS アカウントの CMK へのアクセスの許可」を参照してください。

  14. [Next Step] を選択します。

  15. [Finish] を選択し、CMK を作成します。

ヒント

プログラムおよびコマンドラインインターフェイスオペレーションで新しい CMK を使用するには、キー ID またはキー ARN が必要です。詳細な手順については、「キー ID と ARN を検索する」を参照してください。

CMK の作成 (KMS API)

CreateKey オペレーションは、新規の AWS KMS カスタマーマスターキー (CMK) を作成します。以下の例では AWS Command Line Interface (AWS CLI) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

このオペレーションには必須パラメータはありません。ただし、キーマテリアルのないキーを作成する場合には、Origin パラメータが必要です。また、キーポリシーを指定するために Policy パラメータが必要になる場合もあります。キーポリシー (PutKeyPolicy) を変更して、説明タグ などのオプショナルの要素をいつでも追加できます。

次の例では、パラメーターを指定せずに CreateKey オペレーションを呼び出します。

$ aws kms create-key { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1502910355.475, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" } }

新規の CMK にキーポリシーを指定しない場合、CreateKey によって適用されるデフォルトのキーポリシーは、コンソールを使用して新規の CMK を作成するときにコンソールが適用するデフォルトのキーポリシーとは異なります。

たとえば、GetKeyPolicy オペレーションへの呼び出しは、CreateKey が適用するキーポリシーを返します。これによって CMK に AWS アカウントのルートユーザーアクセスが付与され、CMK に AWS Identity and Access Management (IAM) ポリシーを作成することができます。IAM ポリシーと CMK のキーポリシーについての詳細は、「AWS KMS に対する認証とアクセスコントロール」を参照してください。

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }