GCP - KMS Privesc
KMS
Інформація про KMS:
pageGCP - 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