AWS Key Management Service
開発者ガイド

AWS KMS リソースへのアクセス管理の概要

すべての AWS リソースは AWS アカウントに属し、リソースの作成またはアクセスの権限はそのアカウントのアクセス権限ポリシーで定義されます。アカウント管理者は、アクセス権限ポリシーを IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス (AWS KMS を含む) もその他の種類のリソースにアクセス権限ポリシーをアタッチすることができます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイドの「管理者のユーザーおよびグループの作成」を参照してください。

アクセス権限を管理する場合、アクセス権限を取得するユーザー、そのユーザーがアクセス権限を取得するリソース、および許可される具体的なアクションを決定します。

AWS KMS リソースおよびオペレーション

アクセス権限を管理するには、リソースとオペレーションに関する基本情報を理解する必要があります。AWS KMS では、プライマリリソースタイプはカスタマーマスターキー (CMK) です。AWS KMS では、CMK で使用できる別のリソースタイプであるエイリアスもサポートされます。エイリアスは CMK を示すフレンドリ名です。一部の AWS KMS オペレーションでは、エイリアスで CMK を指定することができます。

これらのリソースタイプには、次のリストに示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

  • カスタマーマスターキー (CMK)

    ARN 形式:

    arn:aws:kms:AWS region:AWS account ID:key/CMK key ID

    ARN の例:

    arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

     

  • エイリアス

    ARN 形式:

    arn:aws:kms:AWS region:AWS account ID:alias/alias name

    ARN の例:

    arn:aws:kms:us-west-2:111122223333:alias/example-alias

AWS KMS には、AWS KMS リソースを操作するための一連の API オペレーションが用意されています。利用可能なオペレーションと、各オペレーションによって影響を受けるリソースの一覧については、「AWS KMS API アクセス権限のリファレンス」を参照してください。

AWS KMS CMK へのアクセスの管理

AWS KMS CMK へのアクセスを管理する主な手段は、ポリシーです。ポリシーは、誰が何にアクセスできるかを説明するドキュメントです。IAM アイデンティティにアタッチされたポリシーはアイデンティティベースのポリシー (または IAM ポリシー) と呼ばれ、その他の種類のリソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。AWS KMS では、カスタマーマスターキー (CMK) にリソースベースのポリシーをアタッチする必要があります。これをキーポリシーと呼びます。すべての KMS CMK にはキーポリシーがあります。

以下の方法で KMS CMK へのアクセスを制御できます。

  • キーポリシーを使用 – キーポリシーを使用して、CMK へのアクセスを制御する必要があります。キーポリシーを単独で使用してアクセスを制御できます。この場合、CMK へのアクセスの完全な範囲が 1 つのドキュメント (キーポリシー) で定義されます。

     

  • IAM ポリシーをキーポリシーと組み合わせて使用 – IAM ポリシーをキーポリシーと組み合わせて、CMK へのアクセスを制御することができます。この方法でアクセスを制御すると、IAM で IAM アイデンティティのすべてのアクセス権限を管理できます。

     

  • 許可をキーポリシーと組み合わせて使用 – 許可をキーポリシーと組み合わせて使用して、CMK へのアクセスを許可することができます。この方法でアクセスを制御すると、キーポリシーで CMK へのアクセスを許可し、ユーザーが他のユーザーにアクセスを委任できるようになります。

ほとんどの AWS サービスで、IAM ポリシーはサービスのリソースへのアクセスを制御する唯一の方法です。一部のサービスでは、IAM ポリシーを補完するために、リソースベースのポリシーやその他のアクセスコントロールメカニズムを提供していますが、これらは通常オプションであり、IAM ポリシーでのみ、これらのサービスのリソースへのアクセスを制御できます。ただし、AWS KMS については該当しません。KMS CMK にアクセスを許可するには、キーポリシーを単独で、または IAM ポリシーや許可と組み合わせて使用する必要があります。IAM ポリシー単独では、CMK へのアクセスを許可するのに十分ではありませんが、CMK のキーポリシーと組み合わせて使用することができます。

キーポリシーの使用の詳細については、「キーポリシーの使用」を参照してください。

IAM ポリシーの使用の詳細については、「IAM ポリシーの使用」を参照してください。

許可の使用の詳細については、「許可の使用」を参照してください。

ポリシーでのアクセス許可の指定

AWS KMS は一連の API オペレーションを提供します。これらの API オペレーションへのアクセスを制御するために、AWS KMS ではポリシーで指定できる一連のアクションが用意されています。詳細については、「AWS KMS API アクセス権限のリファレンス」を参照してください。

ポリシーは、一連のアクセス権限を記述したドキュメントです。以下に、ポリシーの基本的な要素を示します。

  • リソース – IAM ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを指定します。詳細については、「AWS KMS リソースおよびオペレーション」を参照してください。キーポリシーでは、リソースに "*" を使用します (実質的に「この CMK」を意味します)。 キーポリシーは、それがアタッチされた CMK にのみ適用されます。

     

  • アクション – アクションを使用して、許可または拒否する API オペレーションを指定します。たとえば、kms:Encrypt アクションは AWS KMS の暗号化 API オペレーションに対応します。

     

  • 効果 – 効果を使用して、アクセス権限を許可するか拒否するかを指定します。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

     

  • プリンシパル – IAM ポリシーでは、プリンシパルは指定しません。代わりに、ポリシーがアタッチされたアイデンティティ (IAM ユーザー、グループ、またはロール) が、暗黙的なプリンシパルになります。キーポリシーでは、アクセス権限を適用するプリンシパル (アイデンティティ) を指定する必要があります。プリンシパルとして、AWS アカウント (ルート)、IAM ユーザー、IAM ロール、および一部の AWS サービスをキーポリシーで指定できます。IAM グループは、キーポリシーで有効なプリンシパルではありません。

詳細については、「キーポリシーの使用」および「IAM ポリシーの使用」を参照してください。

ポリシーでの条件の指定

条件という別のポリシー要素を使用して、ポリシーが有効になる状況を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーステートメントが必要になる場合があります。または、特定の値が API リクエストに存在するかどうかに基づいて、ポリシーステートメントによるアクセスコントロールが必要になる場合があります。

条件を指定するには、あらかじめ定義された条件キーを使用します。通常、一部の条件キーは AWS に適用され、一部は AWS KMS に固有です。詳細については、「ポリシー条件の使用」を参照してください。