KMS暗号化・復号化のIAMポリシー

特定のKMSキーを使用してデータを暗号化・復号化するIAMポリシーを作成します。エンベロープ暗号化ワークフロー用のGenerateDataKeyを含みます。

Security & Encryption

詳細な説明

KMS暗号化/復号化ポリシー

AWS Key Management Service(KMS)キーは、多くのAWSサービスで保存データの暗号化に使用されます。このポリシーは、特定のKMSキーを使用してデータを暗号化・復号化するために必要な権限を付与します。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowKMSEncryptDecrypt",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
    }
  ]
}

エンベロープ暗号化

ほとんどのAWSサービスはエンベロープ暗号化を使用します:GenerateDataKeyはKMSキーで暗号化されたデータキーを作成します。平文のデータキーがローカルでデータを暗号化し、暗号化されたデータキーは暗号文と一緒に保存されます。復号化時、Decryptがデータキーを復元し、それがデータを復号化します。

DescribeKeyの役割

kms:DescribeKeyはキーに関するメタデータ(作成日、キー状態、キー仕様)を返します。多くのSDKやAWSサービスは暗号化/復号化操作の前にDescribeKeyを呼び出すため、含めることが重要です。

ユースケース

S3やDynamoDBに保存する前に機密データを暗号化するアプリケーション、暗号化されたペイロードを処理するLambda関数、AWS Encryption SDKでクライアントサイド暗号化を使用するサービス。

試してみる — AWS IAM Policy Generator

フルツールを開く