Encrypter requires Cloud KMS Decrypt while wrapping a Data Manager DEK
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu với google/ads/datamanager_util/encrypt.py quanh lệnh gọi tiện ích được trích dẫn, sau đó kiểm tra _proto_keyset_format.py và _keyset_handle.py của Tink tại các kiểm tra tuần tự hóa và round-trip được tham chiếu. Xác định xem một đường dẫn encrypt-only được hỗ trợ có thể giữ nguyên các byte encrypted_dek của tiện ích hay không, hoặc ghi lại mô hình quyền cần thiết. Hoàn tất khi hành vi được hỗ trợ hoặc hướng dẫn là rõ ràng, không mơ hồ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Upstream report - encrypt-only Data Manager keyset wrapping
Target: googleads/data-manager-python
Title: Encrypter requires Cloud KMS Decrypt while wrapping a Data Manager DEK
Report
The official google-ads-datamanager-util Encrypter cannot be constructed with a least-privilege
Cloud KMS identity that has cloudkms.cryptoKeyVersions.useToEncrypt but not
cloudkms.cryptoKeyVersions.useToDecrypt.
Environment:
googleads/data-manager-pythoncommit
4c8e3ee94854e9fc34c63f9468dcaee20ad02c89(google-ads-datamanager-util==0.4.0rc1)tink[gcpkms]==1.16.0- a Cloud KMS service account restricted to encrypting under one exact KEK
Encrypter._create(...) calls tink.proto_keyset_format.serialize_encrypted(...). Tink encrypts
the serialized keyset with the supplied KMS AEAD and then immediately calls that AEAD's decrypt
method to compare the recovered keyset. Cloud KMS Encrypt succeeds, but the expected Decrypt denial
causes Encrypter construction to fail before any Data Manager request is made.
Relevant source:
Could the utility expose a supported path that produces the same Data Manager encrypted_dek
bytes while requiring only KMS Encrypt from the local identity? If Tink intentionally requires the
round-trip check, guidance on the supported least-privilege permission model would also resolve the
ambiguity.
Tink's public KmsEnvelopeAead.encrypt(...) is not a drop-in replacement: it encrypts raw
KeyData.value, generates a fresh key per payload, and returns a length-prefixed combined envelope
ciphertext rather than the serialized process-lifetime EncryptedKeyset emitted by the utility.
We deliberately did not grant temporary Decrypt, fabricate a Decrypt result, patch Tink, or assemble
the secret-keyset envelope manually. No Data Manager RPC was attempted and no customer data is
involved in this report.
- Ngôn ngữ chính
- Jupyter Notebook
- Star
- 4
- Fork
- 1
- Merge trung bình
- 11 giờ 45 phút
- Pull request đã merge (30 ngày)
- 2
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của googleads/data-manager-python
-
Dependency Dashboard Đang mởtype: process
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
Tất cả issue của googleads/data-manager-python
Issue tương tự
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Đang mởbug ecr
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
docs-from-code
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
microsoft/aspire.dev#1734 ·
-
[BUG] Đang mởbug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
openwallet-foundation/eudiplo#1067 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
hashicorp/go-azure-helpers#286 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
akash-network/community#1526 ·