Encrypter requires Cloud KMS Decrypt while wrapping a Data Manager DEK
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
まず、引用されているユーティリティ呼び出しの周辺にある google/ads/datamanager_util/encrypt.py から始め、続いて、参照されているシリアライズおよびラウンドトリップのチェックについて Tink の _proto_keyset_format.py と _keyset_handle.py を調べます。サポートされている encrypt-only パスでユーティリティの encrypted_dek bytes を保持できるかどうかを判断するか、必要な権限モデルを文書化します。サポートされている動作またはガイダンスが明確になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Jupyter Notebook
- スター
- 4
- フォーク
- 1
- 平均マージ
- 11時間 45分
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
googleads/data-manager-python のほかの issue
-
Dependency Dashboard オープンtype: process
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
googleads/data-manager-python の issue をすべて見る
似ている issue
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's オープンbug ecr
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
docs-from-code
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
microsoft/aspire.dev#1734 ·
-
[BUG] オープンbug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
openwallet-foundation/eudiplo#1067 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
hashicorp/go-azure-helpers#286 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
akash-network/community#1526 ·