AWS KMS keysの設定 (任意)
AWS KMS 暗号化キーを使用してリソースを暗号化および復号する場合は、チェックボックスをオンにします。既存のキーがある場合は、ドロップダウンメニューに表示される識別子からキーを選択できます。[Create a key] (キーの作成) を選択して、新しいキーを生成できます。KMS キーは、ランディングゾーンを更新するたびに追加または変更できます。
[Set up landing zone] (ランディングゾーンの設定) を選択した場合、AWS Control Tower は KMS キーを検証するための事前チェックを実行します。キーは、以下の条件を満たす必要があります。
-
有効
-
対称
-
マルチリージョンキーではない
-
ポリシーに正しい許可が追加されている
-
キーが管理アカウントにある
キーがこれらの要件を満たしていない場合は、エラーバナーが表示されることがあります。その場合は、別のキーを選択するか、キーを生成します。次のセクションで説明するように、必ずキーの許可ポリシーを編集してください。
KMS キーポリシーを更新する
KMS キーポリシーを更新する前に、KMS キーを作成する必要があります。詳細については、「AWS Key Management Service デベロッパーガイド」の「キーポリシーの作成」を参照してください。
AWS Control Tower で KMS キーを使用するには、AWS Config と AWS CloudTrail に必要最小限のアクセス許可を追加して、デフォルトの KMS キーポリシーを更新する必要があります。ベストプラクティスとして、どのポリシーでも必要最小限のアクセス許可を付与することをお勧めします。KMS キーポリシーを更新する場合、権限を 1 つの JSON ステートメントまたは行単位でグループとして追加できます。
手順では、AWS Config と CloudTrail が暗号化に AWS KMS を使用できるようにするポリシーステートメントを追加して、AWS KMS コンソールでデフォルトの KMS キーポリシーを更新する方法について説明します。ポリシーステートメントには、次の情報を含める必要があります。
-
YOUR-MANAGEMENT-ACCOUNT-ID– AWS Control Tower を設定する管理アカウントの ID。 -
YOUR-HOME-REGION– AWS Control Tower をセットアップするときに選択するホームリージョン。 -
YOUR-KMS-KEY-ID– ポリシーで使用される KMS キー ID。
KMS キーポリシーを更新するには
-
で AWS KMS コンソールを開きます。。https://console.aws.amazon.com//kms
-
ナビゲーションペインで、[カスタマーマネージドキー] を選択します。
-
テーブルで、編集するキーを選択します。
-
[キーポリシー] タブで、キーポリシーを表示できることを確認します。キーポリシーが表示されない場合は、[ポリシービューへの切り替え] を選択します。
-
[編集] を選択し、AWS Config と CloudTrail の次のポリシーステートメントを追加してデフォルトの KMS キーポリシーを更新します。
AWS Config ポリシーステートメント
{ "Sid": "Allow Config to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID" }CloudTrail ポリシーステートメント
{ "Sid": "Allow CloudTrail to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*" } } } -
[Save changes] (変更の保存) をクリックします。
KMS キーポリシーの例
次のポリシー例は、AWS Config と CloudTrail に必要最小限のアクセス許可を付与するポリシーステートメントを追加した後の KMS キーポリシーがどのようになるかを示しています。サンプルポリシーには、デフォルトの KMS キーポリシーは含まれていません。
{
"Version": "2012-10-17",
"Id": "CustomKMSPolicy",
"Statement": [
{
... YOUR-EXISTING-POLICIES ...
},
{
"Sid": "Allow Config to use KMS for encryption",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:PARTITION:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID"
},
{
"Sid": "Allow CloudTrail to use KMS for encryption",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "arn:PARTITION:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID",
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:PARTITION:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail"
},
"StringLike": {
"kms:EncryptionContext:aws:cloudtrail:arn": "arn:PARTITION:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*"
}
}
}
]
}
その他のポリシーの例については、以下のページを参照してください。
-
「Granting encrypt permissions」(AWS CloudTrail ユーザーガイド)。
-
「Required Permissions for the KMS Key When Using Service-Linked RolesS3 Bucket Delivery」(AWS Config デベロッパーガイド)。
攻撃者からの保護
ポリシーに特定の条件を追加することで、混乱した代理攻撃と呼ばれる特定のタイプの攻撃を防ぐことができます。これは、クロスサービス偽装など、エンティティが、より特権のあるエンティティにアクションを実行させる場合に発生します。ポリシー条件に関する一般的な情報については、「ポリシーでの条件の指定」も参照してください。
AWS Key Management Service (AWS KMS) では、マルチリージョン KMS キーと非対称キーを作成できますが、AWS Control Tower では、マルチリージョンキーまたは非対称キーをサポートしていません。AWS Control Tower は、既存のキーの事前チェックを実行します。マルチリージョンキーまたは非対称キーを選択すると、エラーメッセージが表示されることがあります。その場合は、AWS Control Tower リソースで使用する別のキーを生成してください。
AWS KMS の詳細については、「AWS KMS デベロッパーガイド」を参照してください。
AWS Control Tower の顧客データは、デフォルトでは SSE-S3 を使用して保存時に暗号化されます。