Translated ['src/pentesting-cloud/aws-security/aws-services/aws-kms-enum

This commit is contained in:
Translator
2025-07-07 09:58:04 +00:00
parent 70b8dc89c1
commit ae9ac1c842
2 changed files with 45 additions and 43 deletions

View File

@@ -4,44 +4,44 @@
## KMS - Key Management Service
AWS Key Management Service (AWS KMS) は、ユーザーが **顧客マスターキー** (CMK) を **作成および管理する** プロセスを簡素化するマネージドサービスとして提供されています。これらのCMKは、ユーザーデータの暗号化に不可欠です。AWS KMSの注目すべき機能は、CMKが主に **ハードウェアセキュリティモジュール** (HSM) によって **保護されている** ことです。これにより、暗号化キーの保護が強化されます。
AWS Key Management Service (AWS KMS) は、ユーザーが **顧客マスターキー** (CMK) を **作成および管理する** プロセスを簡素化するマネージドサービスとして提供されています。これらの CMK は、ユーザーデータの暗号化に不可欠です。AWS KMS の注目すべき機能は、CMK が主に **ハードウェアセキュリティモジュール** (HSM) によって **保護されている** ことです。これにより、暗号化キーの保護が強化されます。
KMSは **対称暗号化** を使用します。これは **情報を静止状態で暗号化する** ために使用されます例えば、S3内)。**情報を転送中に暗号化する** 必要がある場合は、**TLS** のようなものを使用する必要があります。
KMS **対称暗号化** を使用します。これは **情報を静止状態で暗号化する** ために使用されます例えば、S3 内)。**転送中の情報を暗号化する** 必要がある場合は、**TLS** のようなものを使用する必要があります。
KMSは **リージョン固有のサービス** です。
KMS **リージョン固有のサービス** です。
**Amazonの管理者はあなたのキーにアクセスできません**。彼らはあなたのキーを復元することができず、あなたのキーの暗号化を手伝うこともありません。AWSは単にオペレーティングシステムとその基盤となるアプリケーションを管理しており、私たちが暗号化キーを管理し、それらのキーがどのように使用されるかを管理する必要があります。
**Amazon の管理者はあなたのキーにアクセスできません**。彼らはあなたのキーを復元することができず、あなたのキーの暗号化を手伝うこともありません。AWS は単にオペレーティングシステムとその基盤となるアプリケーションを管理しており、私たちが暗号化キーを管理し、それらのキーがどのように使用されるかを管理する責任があります。
**顧客マスターキー** (CMK): 最大4KBのサイズのデータを暗号化できます。通常、DEKデータ暗号化キーを作成、暗号化、復号化するために使用されます。その後、DEKはデータを暗号化するために使用されます。
**顧客マスターキー** (CMK): 最大 4KB のサイズのデータを暗号化できます。通常、DEKデータ暗号化キーを作成、暗号化、復号化するために使用されます。その後、DEK はデータを暗号化するために使用されます。
顧客マスターキー (CMK) は、AWS KMSにおけるマスターキーの論理的表現です。マスターキーの識別子や作成日、説明、キーの状態などの他のメタデータに加えて、**CMKにはデータを暗号化および復号化するために使用されるキー素材が含まれています**。CMKを作成すると、デフォルトでAWS KMSそのCMKのためのキー素材を生成します。ただし、キー素材なしでCMKを作成し、そのCMKに自分のキー素材をインポートすることも選択できます。
顧客マスターキー (CMK) は、AWS KMS におけるマスターキーの論理的表現です。マスターキーの識別子や作成日、説明、キーの状態などのメタデータに加えて、**CMK にはデータを暗号化および復号化するために使用されるキー素材が含まれています**。CMK を作成すると、デフォルトで AWS KMSその CMK のためのキー素材を生成します。ただし、キー素材なしで CMK を作成し、その CMK に自分のキー素材をインポートすることもできます。
マスターキーには2種類あります:
マスターキーには 2 種類あります:
- **AWS管理CMK: 他のサービスによってデータを暗号化するために使用されます**。これは、そのリージョンで作成したサービスによって使用されます。暗号化をそのサービスで初めて実装したときに作成されます。3年ごとにローテーションされ、変更することはできません。
- **顧客管理CMK**: 柔軟性、ローテーション、構成可能なアクセスおよびキー方針。キーを有効化および無効化できます。
- **AWS 管理CMK: 他のサービスによってデータを暗号化するために使用されます**。リージョン内でそれを作成したサービスによって使用されます。それは、そのサービスで暗号化を実装する最初の時に作成されます。3 年ごとにローテーションされ、変更することはできません。
- **顧客管理CMK**: 柔軟性、ローテーション、構成可能なアクセスおよびキー ポリシー。キーを有効または無効にします。
**エンベロープ暗号化**は、キー管理サービス (KMS) の文脈においてデータキーでデータを **暗号化し、次にマスターキーでデータキーを暗号化する** 二層階層システムです。
**エンベロープ暗号化** は、キー管理サービス (KMS) の文脈において: データキーでデータを **暗号化し、次にマスターキーでデータキーを暗号化する** ための二層階層システムです。
### キーポリシー
これにより、**KMSでキーを使用およびアクセスできる人を定義します**。
これにより、**KMS でキーを使用およびアクセスできる人を定義します**。
**デフォルトでは**
**デフォルトでは:**
- **KMSキーを所有するAWSアカウントのIAMにアクセスを管理する** 権限を与えます。
- **KMS キーを所有する AWS アカウントの IAM にアクセスを管理する** 権限を与えます。
他のAWSリソースポリシーとは異なり、AWS **KMSキーポリシーはアカウントのいずれかのプリンシパルに自動的に権限を与えません**。アカウント管理者に権限を与えるには、**キーポリシーにこの権限を提供する明示的なステートメントを含める必要があります**。
他の AWS リソースポリシーとは異なり、AWS **KMS キーポリシーはアカウントのいずれかのプリンシパルに自動的に権限を与えません**。アカウント管理者に権限を与えるには、**キーポリシーにこの権限を提供する明示的なステートメントを含める必要があります**。
- アカウントを許可しない限り(`"AWS": "arn:aws:iam::111122223333:root"`IAM権限は機能しません。
- アカウントを許可しない限り(`"AWS": "arn:aws:iam::111122223333:root"`IAM 権限は機能しません。
- これは、**キーポリシーに加えてKMSキーへのアクセスを許可するためにIAMポリシーを使用することを** アカウントに許可します。
- これは、**キーポリシーに加えて KMS キーへのアクセスを許可するために IAM ポリシーを使用することを** アカウントに許可します。
**この権限がないと、キーへのアクセスを許可するIAMポリシーは無効になります**が、キーへのアクセスを拒否するIAMポリシーは依然として有効です。
**この権限がないと、キーへのアクセスを許可する IAM ポリシーは無効になります**が、キーへのアクセスを拒否する IAM ポリシーは依然として有効です。
- これは、**キーが管理不能になるリスクを軽減します**。アカウント管理者、特に削除できないアカウントのルートユーザーにアクセス制御権限を与えることによってです
- **キーが管理不能になるリスクを軽減します**。アカウント管理者、特に削除できないアカウントのルートユーザーにアクセス制御権限を与えることによって。
**デフォルトポリシー**の例:
**デフォルトポリシー** の例:
```json
{
"Sid": "Enable IAM policies",
@@ -54,7 +54,7 @@ KMSは **リージョン固有のサービス** です。
}
```
> [!WARNING]
> **アカウントが許可されている** (`"arn:aws:iam::111122223333:root"`) 場合、アカウントの **プリンシパル** は KMS キーを使用するために **IAM 権限** が必要です。ただし、例えば役割の **ARN** が **キー ポリシー** に **特に許可されている** 場合、その役割は **IAM 権限を必要としません**。
> **アカウントが許可されている** (`"arn:aws:iam::111122223333:root"`) 場合、アカウントの **プリンシパル** は **KMSキーを使用するためにIAM権限が必要** です。ただし、例えば **ロールのARN** が **キー ポリシー** に **特に許可されている** 場合、そのロールは **IAM権限を必要としません**。
<details>
@@ -62,22 +62,22 @@ KMSは **リージョン固有のサービス** です。
ポリシーのプロパティ:
- JSON ベースのドキュメント
- JSONベースのドキュメント
- リソース --> 影響を受けるリソース ("\*" も可)
- アクション --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (権限)
- 効果 --> Allow/Deny
- プリンシパル --> 影響を受ける arn
- プリンシパル --> 影響を受けるarn
- 条件 (オプション) --> 権限を与える条件
グラント:
- AWS アカウント内の別の AWS プリンシパルに権限を委任することを許可します。AWS KMS API を使用して作成する必要があります。CMK 識別子、グラントを受けるプリンシパル、および必要な操作レベル (Decrypt, Encrypt, GenerateDataKey...) を指定できます。
- グラントが作成されると、GrantTokenGrantID が発行されます。
- AWSアカウント内の別のAWSプリンシパルに権限を委任することを許可します。AWS KMS APIを使用して作成する必要があります。CMK識別子、グラントを受けるプリンシパル、および必要な操作レベル (Decrypt, Encrypt, GenerateDataKey...) を指定できます。
- グラントが作成されると、GrantTokenGrantIDが発行されます。
**アクセス**:
- **キー ポリシー** を介して -- これが存在する場合、IAM ポリシーよりも **優先されます**
- **IAM ポリシー** を介して
- **キー ポリシー** を介して -- これが存在する場合、IAMポリシーよりも **優先されます**
- **IAMポリシー** を介して
- **グラント** を介して
</details>
@@ -86,39 +86,39 @@ KMSは **リージョン固有のサービス** です。
デフォルトのキー管理者:
- KMS を管理するアクセス権を持っていますが、データを暗号化または復号化することはできません
- キー管理者リストには IAM ユーザーとロールのみを追加できます (グループは不可)
- 外部 CMK が使用される場合、キー管理者はキー マテリアルをインポートする権限を持っています
- KMSを管理するアクセス権を持っていますが、データを暗号化または復号化することはできません
- キー管理者リストにはIAMユーザーとロールのみを追加できます (グループは不可)
- 外部CMKが使用される場合、キー管理者はキー材料をインポートする権限を持っています
### CMK のローテーション
### CMKのローテーション
- 同じキーが長く使用されるほど、そのキーで暗号化されるデータが増え、そのキーが侵害されると、リスクのあるデータの範囲が広がります。さらに、キーがアクティブである間が長くなるほど、侵害される可能性が高くなります。
- **KMS は顧客キーを 365 日ごとにローテーションします** (または、いつでも手動でプロセスを実行できます) そして **AWS によって管理されるキーは 3 年ごとにローテーションされ、これは変更できません**
- 同じキーが長く使用されるほど、そのキーで暗号化されるデータが増え、そのキーが侵害されると、リスクにさらされるデータの範囲が広がります。さらに、キーがアクティブである間が長くなるほど、侵害される可能性が高くなります。
- **KMSは顧客キーを365日ごとにローテーションします** (または、いつでも手動でプロセスを実行できます) そして **AWSが管理するキーは3年ごとにローテーションされ、これは変更できません**
- **古いキーは保持され**、ローテーション前に暗号化されたデータを復号化するために使用されます。
- 侵害が発生した場合、キーをローテーションしても脅威は除去されず、侵害されたキーで暗号化されたすべてのデータを復号化することが可能です。ただし、**新しいデータは新しいキーで暗号化されます**。
- **CMK** が **無効** または **削除保留中** の状態にある場合、CMK が再有効化されるか削除がキャンセルされるまで、KMS は **キーのローテーションを実行しません**
- **CMK** が **無効** または **削除保留中** の状態にある場合、KMSはCMKが再有効化されるか削除がキャンセルされるまで **キーのローテーションを実行しません**
#### 手動ローテーション
- **新しい CMK を作成する必要があります**。その後、新しい CMK-ID が作成されるため、**アプリケーション** を **新しい CMK-ID を参照するように更新**する必要があります。
- このプロセスを簡単にするために、**キー-ID を参照するためにエイリアスを使用**し、その後エイリアスが参照しているキーを更新することができます。
- **新しいCMKを作成する必要があります**。その後、新しいCMK-IDが作成されるため、**アプリケーション** を **新しいCMK-IDを参照するように更新** する必要があります。
- このプロセスを簡単にするために、**キーIDを参照するためにエイリアスを使用** し、その後エイリアスが参照しているキーを更新することができます。
- **古いファイルを復号化するために古いキーを保持する必要があります**。
オンプレミスのキーインフラストラクチャからキーをインポートできます。
### その他の関連 KMS 情報
### その他の関連KMS情報
KMS は、すべてのサービスから受け取った暗号化/復号化リクエストの数に基づいて月ごとに料金が発生します。
KMSは、すべてのサービスから受け取暗号化/復号化リクエストの数に基づいて価格が設定されます。
KMS は完全な監査およびコンプライアンス **CloudTrail との統合** を提供します。ここで KMS に対して行われたすべての変更を監査できます。
KMSは完全な監査およびコンプライアンス **CloudTrailとの統合** を提供します。ここでKMSに対して行われたすべての変更を監査できます。
KMS ポリシーを使用して、次のことができます:
KMSポリシーを使用して、次のことができます:
- データキーを作成できる人と、これらのキーを使用できるサービスを制限する
- データキーを作成できる人と、これらのキーを使用るサービスを制限する
- システムのアクセスを暗号化専用、復号化専用、または両方に制限する
- システムがリージョンをまたいでキーにアクセスできるように定義する (ただし、KMS をホストしているリージョンでの障害が他のリージョンのシステムの可用性に影響を与えるため、推奨されません)。
- システムがリージョンをまたいでキーにアクセスできるように定義する (ただし、KMSをホストるリージョンでの障害が他のリージョンのシステムの可用性に影響を与えるため、推奨されません)。
リージョン間でキーを同期または移動/コピーすることはできません; アクセスを許可するためのルールを定義することのみ可能です。
リージョン間でキーを同期または移動/コピーすることはできません; アクセスを許可するためのルールを定義することのみ可能です。
### 列挙
```bash
@@ -134,7 +134,7 @@ for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output
echo -e "\n### Region: $region ###"; aws kms list-keys --region $region --query "Keys[].KeyId" --output text | tr '\t' '\n';
done
```
### プリベス
### プリベスケーション
{{#ref}}
../aws-privilege-escalation/aws-kms-privesc.md

View File

@@ -101,6 +101,8 @@
const READY_ICON = icon.innerHTML;
icon.textContent = '⏳';
icon.setAttribute('aria-label','Loading search …');
icon.setAttribute('title','Search is loading, please wait...');
const HOT=83, ESC=27, DOWN=40, UP=38, ENTER=13;
let debounce, teaserCount=0;