GCP - KMS Privesc
KMS
Інформація про KMS:
GCP - KMS EnumЗверніть увагу, що в KMS дозволи не тільки успадковуються від Організацій, Папок і Проектів, але також від Ключових кілець.
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
Ви можете використовувати цей дозвіл, щоб дешифрувати інформацію за допомогою ключа, на який у вас є цей дозвіл.
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
Зловмисник з цим дозволом міг би надати собі дозволи на використання ключа для розшифровки інформації.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ось концептуальний розбір того, як працює ця делегація:
Сервісний обліковий запис A має прямий доступ до розшифровки за допомогою конкретного ключа в KMS.
Сервісний обліковий запис B отримує дозвіл
useToDecryptViaDelegation
. Це дозволяє йому запитувати KMS для розшифровки даних від імені Сервісного облікового запису A.
Використання цього дозволу є неявним у способі, яким сервіс KMS перевіряє дозволи під час подання запиту на розшифровку.
Коли ви робите стандартний запит на розшифровку за допомогою API Google Cloud KMS (на Python або іншій мові), сервіс перевіряє, чи має запитуючий сервісний обліковий запис необхідні дозволи. Якщо запит подається сервісним обліковим записом з дозволом useToDecryptViaDelegation
, KMS перевіряє, чи дозволено цьому обліковому запису запитувати розшифровку від імені суб'єкта, який володіє ключем.
Налаштування для делегації
Визначте користувацьку роль: Створіть файл YAML (наприклад,
custom_role.yaml
), який визначає користувацьку роль. Цей файл повинен містити дозвілcloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Ось приклад того, як може виглядати цей файл:
Створіть користувацьку роль за допомогою gcloud CLI: Використовуйте наступну команду для створення користувацької ролі у вашому проекті Google Cloud:
Замініть [YOUR_PROJECT_ID]
на ваш ідентифікатор проекту Google Cloud.
Надайте користувацьку роль обліковому запису служби: Призначте вашу користувацьку роль обліковому запису служби, який буде використовувати цей дозвіл. Використовуйте наступну команду:
Замініть [YOUR_PROJECT_ID]
та [SERVICE_ACCOUNT_EMAIL]
на ваш ідентифікатор проекту та електронну пошту облікового запису служби відповідно.
Last updated