の認証とアクセスコントロール AWS KMS - AWS Key Management Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の認証とアクセスコントロール AWS KMS

アプリケーション AWS KMS、 の認証情報が必要です。 AWS は、 を使用してリクエストを認証できます。認証情報には、 にアクセスするためのアクセス許可が含まれている必要があります AWS リソース: AWS KMS keys および エイリアス 。なし AWS プリンシパルは、明示的に許可が提供され、拒否されない限り、KMSキーに対する許可を持っています。KMS キーを使用または管理する暗黙的または自動的なアクセス許可はありません。

へのアクセスを管理する主な方法 AWS KMS リソースにはポリシー があります。ポリシーは、どのプリンシパルがどのリソースにアクセスできるかを記述するドキュメントです。IAM ID にアタッチされたポリシーはアイデンティティベースのポリシー (またはIAMポリシー ) と呼ばれ、他の種類のリソースにアタッチされたポリシーはリソースポリシー と呼ばれます。 AWS KMS KMS キーの リソースポリシーは、キーポリシー と呼ばれます。すべてのKMSキーにはキーポリシーがあります。

へのアクセスを制御するには AWS KMS エイリアス、 IAMポリシーを使用します。プリンシパルがエイリアスを作成できるようにするには、 IAMポリシーのエイリアスにアクセス許可を付与し、キーポリシーのキーにアクセス許可を付与する必要があります。詳細については、「エイリアスへのアクセスの制御」を参照してください。

KMS キーへのアクセスを制御するには、次のポリシーメカニズムを使用できます。

  • キーポリシー – すべてのKMSキーにはキーポリシーがあります。これは、KMSキーへのアクセスを制御するための主要なメカニズムです。キーポリシーだけを使用してアクセスを制御できます。つまり、KMSキーへのアクセスの全範囲は 1 つのドキュメント (キーポリシー) で定義されます。キーポリシーの使用の詳細については、「キーポリシー」を参照してください。

  • IAM ポリシー – ポリシーをキーIAMポリシーおよび許可と組み合わせて使用して、KMSキーへのアクセスを制御できます。この方法でアクセスを制御すると、 の ID IAM に対するすべてのアクセス許可を管理できますIAM。IAM ポリシーを使用してKMSキーへのアクセスを許可するには、キーポリシーで明示的に許可する必要があります。IAM ポリシーの使用の詳細については、「」を参照してくださいIAM ポリシー

  • 権限 – 権限をキーポリシーおよび IAM ポリシーと組み合わせて使用して、KMSキーへのアクセスを許可できます。この方法でアクセスを制御すると、KMSキーポリシー内のキーへのアクセスを許可し、ID が他のユーザーにアクセスを委任できるようになります。グラントの使用の詳細については、「での許可 AWS KMS」を参照してください。

KMS キーは に属します。 AWS 作成された アカウント。ただし、 を含むアイデンティティやプリンシパルはありません。 AWS アカウントルートユーザーには、KMSキーポリシー、ポリシー、または許可で明示的に許可されていない限り、キーを使用IAMまたは管理する許可があります。KMS キーを作成する IAM ID はキー所有者とはみなされず、作成したKMSキーを使用または管理するアクセス許可も自動的に付与されません。他のアイデンティティと同様に、キー作成者はキーポリシー、IAMポリシー、または許可を通じてアクセス許可を取得する必要があります。ただし、kms:CreateKey アクセス許可を持つアイデンティティは、初期キーポリシーを設定し、キーを使用または管理するためのアクセス許可を自分自身に付与できます。

以下のトピックでは、 の使用方法について詳しく説明します。 AWS Identity and Access Management (IAM) と AWS KMS リソースにアクセスできるユーザーを制御することで、リソースをセキュア化するための アクセス許可。

の概念 AWS KMS アクセスコントロール

でのアクセスコントロールの議論で使用される概念について説明します。 AWS KMS.

認証

認証とは、アイデンティティを検証するプロセスです。リクエストを に送信するには AWS KMS、 にサインインする必要があります AWS の使用 AWS 認証情報。

認証

認証は、作成、管理、または使用のリクエストを送信するアクセス許可を提供します。 AWS KMS リソースの使用料金を見積もることができます。例えば、暗号化オペレーションでKMSキーを使用する権限が必要です。

へのアクセスを制御するには AWS KMS リソースでは、キーポリシー IAMポリシー を使用し、 を付与します。すべてのKMSキーにはキーポリシーが必要です。キーポリシーで許可されている場合は、IAMポリシーと許可を使用して、プリンシパルにKMSキーへのアクセスを許可することもできます。権限を絞り込むために、条件キーを使用して、リクエストまたはリソースが指定した条件を満たす場合に限り、アクセスを許可または拒否できます。他の で信頼するプリンシパルへのアクセスを許可することもできます。 AWS アカウント.

アイデンティティを使用した認証

認証は、 にサインインする方法です。 AWS ID 認証情報を使用する。認証されている必要があります ( にサインインします AWSとして ) AWS アカウントのルートユーザー、 IAM ユーザーとして、または IAMロールを引き受ける方法。

にサインインできます。 AWS ID ソースを通じて提供された認証情報を使用して、フェデレーティッド ID として 。 AWS IAM Identity Center (IAM Identity Center) ユーザー、会社のシングルサインオン認証、Google または Facebook の認証情報は、フェデレーティッド ID の例です。フェデレーティッド ID としてサインインすると、管理者は以前に IAMロールを使用して ID フェデレーションをセットアップしていました。にアクセスする場合 AWS フェデレーションを使用すると、間接的にロールを引き受けることになります。

ユーザーのタイプに応じて、 にサインインできます。 AWS Management Console または AWS アクセスポータル。へのサインインの詳細については、「」を参照してください。 AWS、「 にサインインする方法」を参照してください。 AWS アカウント ()AWS サインイン ユーザーガイド

アクセスする場合 AWS プログラムにより、 AWS は、 認証情報を使用してリクエストに暗号で署名するためのソフトウェア開発キット (SDK) とコマンドラインインターフェイス (CLI) を提供します。を使用しない場合 AWS ツール、リクエストには自分で署名する必要があります。推奨される方法を使用してリクエストに自分で署名する方法の詳細については、「署名」を参照してください。 AWS API IAMユーザーガイドの リクエスト

使用する認証方法を問わず、追加セキュリティ情報の提供をリクエストされる場合もあります。例えば、 などです AWS では、アカウントのセキュリティを高めるために多要素認証 (MFA) を使用することをお勧めします。詳細については、「」の「多要素認証」を参照してください。 AWS IAM Identity Center ユーザーガイドでの多要素認証 (MFA) の使用 AWS「」(IAM ユーザーガイド) を参照してください。

AWS アカウント ルートユーザー

を作成する場合 AWS アカウントでは、すべての への完全なアクセス権を持つ 1 つのサインイン ID から始めます。 AWS のサービス アカウントの および リソース。この ID は と呼ばれます。 AWS アカウント root ユーザー と には、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることでアクセスできます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報は保護し、ルートユーザーでしか実行できないタスクを実行するときに使用します。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、「 IAMユーザーガイド」の「ルートユーザーの認証情報を必要とするタスク」を参照してください。

フェデレーティッドアイデンティティ

ベストプラクティスとして、管理者アクセスを必要とするユーザーを含む人間のユーザーに、ID プロバイダーとのフェデレーションを使用して にアクセスすることを要求します。 AWS のサービス 一時的な認証情報を使用する。

フェデレーティッド ID は、エンタープライズユーザーディレクトリのユーザー、ウェブ ID プロバイダー、 AWS Directory Service、Identity Center ディレクトリ、または にアクセスする任意のユーザー AWS のサービス ID ソースを通じて提供される認証情報を使用する。フェデレーティッド ID アクセスの場合 AWS アカウント、ロールを引き受け、ロールは一時的な認証情報を提供します。

一元的なアクセス管理を行うには、 を使用することをお勧めします。 AWS IAM Identity Center。 IAM Identity Center でユーザーとグループを作成するか、独自の ID ソース内のユーザーとグループのセットに接続して同期し、すべての で使用できます。 AWS アカウント および アプリケーション。IAM Identity Center の詳細については、「」のIAM「Identity Center とは」を参照してください。 AWS IAM Identity Center ユーザーガイド

IAM ユーザーとグループ

IAM ユーザーは 内のアイデンティティです。 AWS アカウント 1 人のユーザーまたはアプリケーションに対して特定のアクセス許可を持つ 。可能であれば、パスワードやアクセスキーなどの長期的な認証情報を持つIAMユーザーを作成する代わりに、一時的な認証情報を使用することをお勧めします。ただし、IAMユーザーとの長期的な認証情報を必要とする特定のユースケースがある場合は、アクセスキーをローテーションすることをお勧めします。詳細については、「 ユーザーガイド」の「長期的な認証情報を必要とするユースケースでアクセスキーを定期的にローテーションするIAM」を参照してください。

IAM グループは、IAMユーザーのコレクションを指定するアイデンティティです。グループとしてサインインすることはできません。グループを使用して、複数のユーザーに対して一度に権限を指定できます。多数のユーザーグループがある場合、グループを使用することで権限の管理が容易になります。例えば、 という名前のグループを作成しIAMAdmins、そのグループにIAMリソースを管理するアクセス許可を付与できます。

ユーザーは、ロールとは異なります。ユーザーは 1 人の人または 1 つのアプリケーションに一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。ユーザーには永続的な長期の認証情報がありますが、ロールでは一時認証情報が提供されます。詳細については、「 ユーザーガイド」のIAM「 (ロールではなく) ユーザーを作成する場合IAM」を参照してください。

IAM ロール

IAM ロールは 内のアイデンティティです。 AWS アカウント 特定のアクセス許可を持つ 。ユーザーと似ていますがIAM、特定のユーザーに関連付けられていません。で一時的に IAMロールを引き受けることができます。 AWS Management Console ロール を切り替えます。を呼び出すことでロールを引き受けることができます。 AWS CLI または AWS API オペレーション、またはカスタム の使用URL。ロールの使用方法の詳細については、「 ユーザーガイド」のIAM「ロールの使用IAM」を参照してください。

IAM 一時的な認証情報を持つ ロールは、以下の状況で役立ちます。

  • フェデレーションユーザーアクセス – フェデレーティッド ID に許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールの詳細については、「 ユーザーガイド」の「サードパーティー ID プロバイダーのロールの作成IAM」を参照してください。IAM Identity Center を使用する場合は、アクセス許可セットを設定します。ID が認証後にアクセスできる内容を制御するために、IAMIdentity Center はアクセス許可セットを のロールに関連付けますIAM。アクセス許可セットの詳細については、「」の「アクセス許可セット」を参照してください。 AWS IAM Identity Center ユーザーガイド

  • 一時的なIAMユーザーアクセス許可 – IAM ユーザーまたはロールは、 IAMロールを引き受けて、特定のタスクに対して異なるアクセス許可を一時的に引き受けることができます。

  • クロスアカウントアクセス – IAMロールを使用して、別のアカウントのユーザー (信頼されたプリンシパル) が自分のアカウントのリソースにアクセスすることを許可できます。クロスアカウントアクセスを許可する主な方法は、ロールを使用することです。ただし、 AWS のサービスでは、 (ロールをプロキシとして使用する代わりに) リソースにポリシーを直接アタッチできます。クロスアカウントアクセスのロールとリソースベースのポリシーの違いについては、「 ユーザーガイド」の「 でのクロスアカウントリソースアクセスIAMIAM」を参照してください。

  • クロスサービスアクセス – 一部 AWS のサービス 他の の機能を使用する AWS のサービス。 例えば、サービスで呼び出しを行うと、そのサービスが Amazon でアプリケーションを実行EC2したり、Amazon S3 にオブジェクトを保存したりするのが一般的です。サービスでは、呼び出し元プリンシパルの許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。

    • 転送アクセスセッション (FAS) – IAM ユーザーまたはロールを使用して でアクションを実行する場合 AWS、ユーザーはプリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可を使用します。 AWS のサービス、 リクエストとの組み合わせ AWS のサービス ダウンストリームサービスにリクエストを行う 。FAS リクエストは、サービスが他の とのやり取りを必要とするリクエストを受け取った場合にのみ行われます。 AWS のサービス または完了するリソース。この場合、両方のアクションを実行するための権限が必要です。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

    • サービスロール – サービスロールは、ユーザーに代わってアクションを実行するためにサービスが引き受ける IAMロールです。IAM 管理者は、 内からサービスロールを作成、変更、削除できますIAM。詳細については、「 にアクセス許可を委任するロールの作成」を参照してください。 AWS のサービス「」(IAM ユーザーガイド) を参照してください。

    • サービスにリンクされたロール – サービスにリンクされたロールは、 にリンクされたサービスロールの一種です。 AWS のサービス。 このサービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールが に表示されます。 AWS アカウント と は サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

  • Amazon で実行されているアプリケーション EC2 – IAMロールを使用して、EC2インスタンスで実行され、 を作成しているアプリケーションの一時的な認証情報を管理できます。 AWS CLI または AWS API リクエスト。これは、EC2インスタンス内にアクセスキーを保存するよりも望ましいです。を割り当てるには AWS EC2 インスタンスにロールを割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルには ロールが含まれており、EC2インスタンスで実行されているプログラムが一時的な認証情報を取得できるようにします。詳細については、「 ユーザーガイド」の「 IAMロールを使用して Amazon EC2インスタンスで実行されているアプリケーションにアクセス許可を付与するIAM」を参照してください。

IAM ロールとIAMユーザーのどちらを使用するかについては、「 ユーザーガイド」の「 (ユーザーではなく) IAMロールを作成する場合IAM」を参照してください。

ポリシーを使用したアクセスの管理

でアクセスをコントロールする AWS ポリシーを作成して にアタッチする AWS ID またはリソース。ポリシーは のオブジェクトです。 AWS アイデンティティまたはリソースに関連付けられている場合、そのアクセス許可を定義します。 AWS は、プリンシパル (ユーザー、ルートユーザー、またはロールセッション) がリクエストを行うときに、これらのポリシーを評価します。ポリシーでの権限により、リクエストが許可されるか拒否されるかが決まります。ほとんどのポリシーは に保存されます。 AWS JSON ドキュメントとして。JSON ポリシードキュメントの構造と内容の詳細については、「 ユーザーガイド」のJSON「ポリシーの概要IAM」を参照してください。

管理者は を使用できます AWS JSON 誰が何にアクセスできるかを指定する ポリシー。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

デフォルトでは、ユーザーやロールに権限はありません。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するために、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

IAM ポリシーは、オペレーションの実行に使用するメソッドに関係なく、アクションのアクセス許可を定義します。例えば、iam:GetRoleアクションを許可するポリシーがあるとします。そのポリシーを持つユーザーは、 からロール情報を取得できます。 AWS Management Console、 AWS CLI、または AWS API.

アイデンティティベースのポリシー

ID ベースのポリシーは、IAMユーザー、ユーザーのグループ、ロールなどの ID にアタッチできるJSONアクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースのポリシーを作成する方法については、「 ユーザーガイド」のIAM「ポリシーの作成IAM」を参照してください。

アイデンティティベースのポリシーは、さらにインラインポリシーまたはマネージドポリシーに分類できます。インラインポリシーは、単一のユーザー、グループ、またはロールに直接埋め込まれています。管理ポリシーは、 内の複数のユーザー、グループ、ロールにアタッチできるスタンドアロンポリシーです。 AWS アカウント。 管理ポリシーには以下が含まれます。 AWS 管理ポリシーとカスタマー管理ポリシー。管理ポリシーとインラインポリシーのどちらかを選択する方法については、 IAM ユーザーガイド「管理ポリシーとインラインポリシーの選択」を参照してください。

リソースベースのポリシー

An AWS KMS キーポリシーは、KMSキーへのアクセスを制御するリソースベースのポリシーです。すべてのKMSキーにはキーポリシーが必要です。他の認証メカニズムを使用してKMSキーへのアクセスを許可できますが、キーポリシーで許可されている場合に限ります。( IAMポリシーを使用して、KMSキーポリシーが明示的に許可していない場合でも、キーへのアクセスを拒否できます。)

リソースベースのポリシーは、特定のリソースへのアクセスを制御するためにKMSキーなどのリソースにアタッチするJSONポリシードキュメントです。リソースベースのポリシーは、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件を定義します。リソースベースのポリシーではリソースを指定しませんが、アカウント、ユーザー、ロール、フェデレーティッドユーザー、 などのプリンシパルを指定する必要があります。 AWS のサービス。 リソースベースのポリシーは、リソースを管理するそのサービスにあるインラインポリシーです。は使用できません AWS リソースベースのポリシー内の IAM管理ポリシー など、 からの AWSKeyManagementServicePowerUser 管理ポリシー。

アクセスコントロールリスト (ACLs)

アクセスコントロールリスト (ACLs) は、リソースへのアクセス許可を持つプリンシパル (アカウントメンバー、ユーザー、またはロール) を制御します。ACLs はリソースベースのポリシーに似ていますが、JSONポリシードキュメント形式を使用しません。

Amazon S3、 AWS WAF、、および Amazon VPCは、 をサポートする のサービスの例ですACLs。の詳細についてはACLs、Amazon Simple Storage Service デベロッパーガイド「アクセスコントロールリスト (ACL) の概要」を参照してください。

AWS KMS は をサポートしていませんACLs。

その他のポリシータイプ

AWS は、一般的ではない追加のポリシータイプをサポートします。これらのポリシータイプでは、より一般的なポリシータイプで付与された最大の権限を設定できます。

  • アクセス許可の境界 – アクセス許可の境界は、アイデンティティベースのポリシーがIAMエンティティ (IAMユーザーまたはロール) に付与できるアクセス許可の上限を設定する高度な機能です。エンティティにアクセス許可の境界を設定できます。結果として得られる権限は、エンティティのアイデンティティベースポリシーとそのアクセス許可の境界の共通部分になります。Principal フィールドでユーザーまたはロールを指定するリソースベースのポリシーでは、アクセス許可の境界は制限されません。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。アクセス許可の境界の詳細については、「 IAMユーザーガイド」の「 IAMエンティティのアクセス許可の境界」を参照してください。

  • サービスコントロールポリシー (SCPs) – SCPsは、 の組織または組織単位 (OU) の最大アクセス許可を指定するJSONポリシーです。 AWS Organizations. AWS Organizations は、複数の をグループ化して一元管理するためのサービスです。 AWS アカウント お客様のビジネスが所有する 。組織内のすべての機能を有効にすると、サービスコントロールポリシー (SCPs) をアカウントの一部またはすべてに適用できます。は、 を含むメンバーアカウントのエンティティのアクセス許可SCPを制限します。 AWS アカウントのルートユーザー。 Organizations と の詳細についてはSCPs、「」の「サービスコントロールポリシー」を参照してください。 AWS Organizations ユーザーガイド

  • セッションポリシー - セッションポリシーは、ロールまたはフェデレーションユーザーの一時的なセッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。結果としてセッションの権限は、ユーザーまたはロールのアイデンティティベースポリシーとセッションポリシーの共通部分になります。また、リソースベースのポリシーから権限が派生する場合もあります。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。詳細については、「 ユーザーガイド」の「セッションポリシーIAM」を参照してください。

複数のポリシータイプ

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される権限を理解するのがさらに難しくなります。方法を学ぶには AWS は、複数のポリシータイプが関与する場合にリクエストを許可するかどうかを決定します。「 ユーザーガイド」の「ポリシー評価ロジックIAM」を参照してください。

AWS KMS リソース

In AWS KMS、プライマリリソースは です AWS KMS key. AWS KMS は、KMSキーにわかりやすい名前を提供する独立したリソースであるエイリアス もサポートしています。ある程度 AWS KMS オペレーションでは、エイリアスを使用してKMSキーを識別できます。

KMS キーまたはエイリアスの各インスタンスには、標準形式の一意の Amazon リソースネーム (ARN) があります。In AWS KMS リソース、 AWS サービス名は ですkms

  • AWS KMS key

    ARN 形式:

    arn:AWS partition name:AWS service name:AWS リージョン:AWS アカウント ID:key/key ID

    例ARN:

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

  • エイリアス

    ARN 形式:

    arn:AWS partition name:AWS service name:AWS リージョン:AWS アカウント ID:alias/alias name

    例ARN:

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

AWS KMS は、 と連携する一連のAPIオペレーションを提供します。 AWS KMS リソースの使用料金を見積もることができます。でのKMSキーの識別の詳細については、「」を参照してください。 AWS Management Console また、 AWS KMS API オペレーションについては、「」を参照してくださいキー識別子 (KeyId)。のリストの場合 AWS KMS オペレーションについては、「」を参照してください。 AWS Key Management Service API リファレンス