Как предотвратить доступ инсайдеров к данным или секретам, зашифрованным с помощью Cloud KMS?
Достаточно ли шифрования данных с помощью Cloud KMS для предотвращения доступа сотрудников моей организации к зашифрованным данным? Какие лучшие практики существуют, чтобы избежать ненужного воздействия?
1 ответ
Ресурсы в Cloud KMS - это ресурсы Google Cloud Platform, доступ к которым можно управлять с помощью IAM, а аудит доступа - с помощью ведения журнала Cloud Audit. Вы должны установить разрешения, которые будут ограничивать использование ключей шифрования только теми лицами, которые должны иметь доступ.
Вы можете применять принцип разделения обязанностей - лицо, управляющее ключами шифрования, не должно быть тем же лицом, которое получает доступ к тому, что защищают эти ключи, например к секретам. Практически вы должны предоставить одному человеку права на администрирование ключей, например на ротацию ключей и т. Д. (Роль IAM: Cloud KMS Admin); и другие права на использование ключа, такие как шифрование / дешифрование для доступа к данным (роль IAM: Cloud KMS CryptoKey Encrypter/Decrypter).
Для дальнейшего обсуждения разделения обязанностей в облачной KMS: https://cloud.google.com/kms/docs/separation-of-duties
Чтобы дать пользователю возможность управлять ключом с ролью Cloud KMS Admin, используя gcloud run:
gcloud beta kms cryptokeys add-iam-policy-binding \
CRYPTOKEY_NAME --location LOCATION --keyring KEYRING_NAME \
--member user:MY-USER@gmail.com \
--role roles/cloudkms.admin
Чтобы предоставить сервисной учетной записи возможность шифрования и дешифрования с помощью ключа с ролью Cloud KMS CryptoKey Encrypter/Decrypter, используя gcloud run:
gcloud beta kms cryptokeys add-iam-policy-binding \
CRYPTOKEY_NAME --location LOCATION --keyring KEYRING_NAME \
--member serviceAccount:MY-SERVICE_ACCOUNT@MY-PROJECT.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter