AWS EC2 KMS(Key Management Service)サポート
EC2インスタンスの暗号化にAWSカスタマー管理キー(CMK)を使用している場合、Aikidoのスキャンロールにこれらのキーへのアクセス権を付与する必要があります。このガイドでは、必要な手順を説明します。
前提条件
- CMKで暗号化されたEC2インスタンスがあること。
- AWS KMSでEBS暗号化に使用しているキーにアクセスできること。
- AikidoでEC2スキャンを有効化していること。ロールARNが必要になります。
アクセス権を付与する手順
- AWS KMS → カスタマー管理型のキー に移動します
- EC2の暗号化に使用しているCMKを見つけてクリックします
- キーの詳細ページで、キーユーザー セクションまでスクロールします
- 追加 をクリックして新しいキーユーザーを追加します
- AikidoのVMスキャンロールを検索して選択します
- 変更を保存します

JSONポリシー
KMSキーをInfrastructure as Codeで管理している場合は、代わりにEBS暗号化に使用しているキーのJSONポリシーに以下のステートメントを追加し、arn:aws:iam::112233445566:role/aikido-security-ec2 をAikidoのVMスキャンロールARNに置き換えてください:
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::112233445566:role/aikido-security-ec2" // Replace this
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Sid": "Allow attachment of persistent resources",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::112233445566:role/aikido-security-ec2" // Replace this
},
"Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}確認
Aikidoロールをキーユーザーとして追加すると、AikidoはCMKで暗号化されたEC2インスタンスをスキャンできるようになります。
重要な注意事項
- これらの権限がない場合、AikidoはCMKで暗号化されたEC2インスタンスをスキャンできません。
- この権限は、スキャンに必要なアクセスのみを許可するよう範囲が限定されています。
- 後でこれらの権限を削除すると、スキャン機能に影響が出ます。
トラブルシューティング
CMKで暗号化されたインスタンスのスキャンで問題が発生した場合は、以下を確認してください:
- 正しいCMKが選択されていること
- Aikidoロールがキーユーザーとして正しく追加されていること
- キーポリシーが変更されて権限が削除されていないこと
スキャン対象のVMの管理
AikidoはVMスキャンの包含・除外モデルをサポートしています。
スキャン頻度
スキャンが有効になっているすべてのVMのうち、毎日10%が再スキャンされるため、平均するとすべてのVMが10日に1回スキャンされます。