Open takuro-sato opened 9 months ago
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
View this failed invocation of the CLA check for more information.
For the most up to date status, view the checks section at the bottom of the pull request.
Adding Azure support
This PR is adding support for deployment of Google's Bidding and Auction Services on Azure.
Azure Privacy Sandbox architecture: https://1drv.ms/w/s!AmI-86sms1pYqJ5Uqgo5Qv2Ynmrcmw?e=BDC8BH (We'll make a PR for the document in https://github.com/privacysandbox/protected-auction-services-docs/tree/main in future)
Now B&A services can fetch private and public HPKE keys from an Azure KMS, specifically designed to support the B&A services, and handle test requests. To try this changes locally, please visit here.
The PR for bidding-auction-servers repository: https://github.com/privacysandbox/bidding-auction-servers/pull/9
Changes
--platform=azure
(for Bazel),kAzure
(C++ enum value).cpio/client_providers/
Add
aci_attestation_lib
library to fetch attestation in Azure Confidential ACI. We implemented the core functionality of:kms_client_provider
parameter_client_provider
private_key_fetcher_provider
private_key_fetcher_provider
.On the other hand, we haven't started implementing the following interfaces:
auth_token_provider
role_credentials_provider
Also we return dummy values for
instance_client_provider
for now. Please see "TODOs for future PRs" section for the details.TODOs for future PRs
auth_token_provider
is not implemented yet. Soprivate_key_fetcher_provider
andkms_client_provider
are not using authentication token when accessing Azure KMS. It will be implemented using Azure Active Directory (Azure AD).instance_client_provider
currently returns dummy values. It will be implemented properly after Azure auth_token_provider is ready.kKMSUnwrapPath
. We will either put the URL inKeyData::key_encryption_key_uri
or use an environment variableinit_azure
role_credentials_provider
private_key_cache_ttl_seconds
option.key_id
for private key APIPrivateKeyFetchingRequest
.azure_cpio_lib_inside_tee
andazure_cpio_lib_outside_tee
implementation. Current azure_cpio_lib_inside_tee uses fake attestation report silently when it's outside TEE.aci_attestation_lib
libraryreport_data
as a proof-of-possession of a private key that can unwrap the private HPKE keyblob_storage_client_provider
. We definedazure_platform
forblob_storage_client_provider_select_lib
using the GCP implementation under/src/gcp
. We think it's not used in B&A services, but we added it just to avoid build errors when we runbuild_and_test_all_in_docker
.azure_platform
fortest_lib_cpio_provider
cloud_initializer/src/azure/
directory. We copied the gcp implementation, but accidentally added the Microsoft copyright. We made this PR without the fix because testing is expensive with our internal test infrastructure at this moment. We'll fix them within this PR if there is other change that needs to be made before merging.