Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add CMEK Support #656

Merged
merged 7 commits into from Apr 6, 2021
Merged

feat: add CMEK Support #656

merged 7 commits into from Apr 6, 2021

Conversation

ad548
Copy link
Member

@ad548 ad548 commented Mar 2, 2021

#673

Summary

All data at rest is typically encrypted with Google's default encryption. This feature will provide support for Customer Managed Encryption Keys (CMEK) in the JAVA client, allowing users to control their encryption keys. CMEK data at rest is protected using an encryption key that users control and manage through Cloud Key Management Service (Cloud KMS).

Checklist

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

@generated-files-bot
Copy link

@generated-files-bot generated-files-bot bot commented Mar 2, 2021

Warning: This pull request is touching the following templated files:

  • .github/blunderbuss.yml
  • .github/generated-files-bot.yml
  • .github/readme/synth.py
  • .github/snippet-bot.yml
  • .github/workflows/approve-readme.yaml
  • .github/workflows/auto-release.yaml
  • .github/workflows/ci.yaml
  • .github/workflows/samples.yaml
  • .kokoro/build.sh
  • .kokoro/common.sh
  • .kokoro/continuous/readme.cfg
  • .kokoro/dependencies.sh
  • .kokoro/readme.sh
  • .kokoro/release/publish_javadoc.cfg
  • .kokoro/release/publish_javadoc.sh
  • .kokoro/release/publish_javadoc11.cfg
  • .kokoro/release/publish_javadoc11.sh
  • .kokoro/release/stage.sh
  • CODE_OF_CONDUCT.md
  • LICENSE
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminClient.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClient.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminSettings.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/gapic_metadata.json
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStub.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStub.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminCallableFactory.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminCallableFactory.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/gapic_metadata.json
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStub.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableCallableFactory.java
  • google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminClientTest.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClientTest.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/MockBigtableInstanceAdmin.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/MockBigtableInstanceAdminImpl.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/MockBigtableTableAdmin.java
  • google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/MockBigtableTableAdminImpl.java
  • grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminGrpc.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Backup.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminProto.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminProto.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Cluster.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CryptoKeyName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CryptoKeyVersionName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfo.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfoOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRule.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRuleOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponse.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponseOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/LocationName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ProjectName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadata.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadataOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Snapshot.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequestOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Table.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableName.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableOrBuilder.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableProto.java
  • proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequest.java
  • proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/bigtable_instance_admin.proto
  • proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/bigtable_table_admin.proto
  • proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/instance.proto
  • proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/table.proto
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRange.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRangeOrBuilder.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRule.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRuleOrBuilder.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponse.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilter.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilterOrBuilder.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRange.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRangeOrBuilder.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TableName.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRange.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRangeOrBuilder.java
  • renovate.json
  • samples/install-without-bom/pom.xml
  • samples/pom.xml
  • samples/snapshot/pom.xml
  • samples/snippets/pom.xml

@product-auto-label product-auto-label bot added the api: bigtable label Mar 2, 2021
@google-cla google-cla bot added the cla: yes label Mar 2, 2021
@ad548 ad548 changed the title Cmek Add CMEK Support Mar 2, 2021
@ad548

This comment has been minimized.

pom.xml Show resolved Hide resolved
@codecov
Copy link

@codecov codecov bot commented Mar 13, 2021

Codecov Report

Merging #656 (95c4973) into master (ca1f5ed) will increase coverage by 0.09%.
The diff coverage is 89.81%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master     #656      +/-   ##
============================================
+ Coverage     83.55%   83.64%   +0.09%     
- Complexity     1198     1220      +22     
============================================
  Files           110      112       +2     
  Lines          7309     7417     +108     
  Branches        383      394      +11     
============================================
+ Hits           6107     6204      +97     
- Misses         1004     1010       +6     
- Partials        198      203       +5     
Impacted Files Coverage Δ Complexity Δ
...cloud/bigtable/admin/v2/models/EncryptionInfo.java 77.77% <77.77%> (ø) 8.00 <8.00> (?)
.../java/com/google/cloud/bigtable/common/Status.java 89.58% <89.58%> (ø) 7.00 <7.00> (?)
...ud/bigtable/admin/v2/BigtableTableAdminClient.java 85.71% <100.00%> (+1.13%) 46.00 <2.00> (+2.00)
.../google/cloud/bigtable/admin/v2/models/Backup.java 65.11% <100.00%> (+0.83%) 12.00 <1.00> (+1.00)
...google/cloud/bigtable/admin/v2/models/Cluster.java 80.95% <100.00%> (+1.46%) 12.00 <2.00> (+2.00)
...bigtable/admin/v2/models/CreateClusterRequest.java 96.00% <100.00%> (+0.54%) 9.00 <1.00> (+1.00)
...igtable/admin/v2/models/CreateInstanceRequest.java 97.87% <100.00%> (+0.43%) 10.00 <1.00> (+1.00)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ca1f5ed...95c4973. Read the comment docs.

@ad548 ad548 changed the title Add CMEK Support feat: Add CMEK Support Mar 13, 2021
@ad548 ad548 changed the title feat: Add CMEK Support feat: add CMEK Support Mar 13, 2021
@snippet-bot
Copy link

@snippet-bot snippet-bot bot commented Mar 13, 2021

Here is the summary of changes.

You are about to add 1 region tag.

This comment is generated by snippet-bot.
If you find problems with this result, please file an issue at:
https://github.com/googleapis/repo-automation-bots/issues.
To update this comment, add snippet-bot:force-run label or use the checkbox below:

  • Refresh this comment

@google-cla
Copy link

@google-cla google-cla bot commented Mar 13, 2021

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: no and removed cla: yes labels Mar 13, 2021
@google-cla google-cla bot added cla: yes and removed cla: no labels Mar 13, 2021
@ad548 ad548 force-pushed the cmek branch 2 times, most recently from dbc629b to 36d345b Compare Mar 29, 2021
@ad548 ad548 marked this pull request as ready for review Mar 29, 2021
@ad548 ad548 requested review from as code owners Mar 29, 2021
@kolea2 kolea2 added kokoro:force-run and removed kokoro:force-run labels Mar 30, 2021
Copy link
Contributor

@igorbernstein2 igorbernstein2 left a comment

lgtm!

ad548 and others added 4 commits Apr 5, 2021
Change-Id: I423410fd4b78cd31f646130316b88e7be7cd71ad
Change-Id: I1a68ffa9a83926e6f98273425332fec8503f976a
@kolea2 kolea2 added the kokoro:force-run label Apr 6, 2021
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run label Apr 6, 2021
ad548 added 3 commits Apr 6, 2021
Change-Id: I5e38cf3ea2863eaa8c82643bded46b9b63699231
Change-Id: I34b3d5e0f0b1de8935c46a9497dc5c0e242f1c94
Change-Id: I59dee549d9ca79def4e41ab3bcc1f5126c9631af
kolea2
kolea2 approved these changes Apr 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: bigtable cla: yes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants