ডেটা ম্যানেজার API নিম্নলিখিত কী ম্যানেজমেন্ট পরিষেবাগুলি ব্যবহার করে ডেটা এনক্রিপ্ট করা সমর্থন করে:
কিছু ব্যবহারের ক্ষেত্রে সমর্থন কী ম্যানেজমেন্ট সার্ভিস (KMS) অনুসারে ভিন্ন হয়:
| বিভাগ | ব্যবহারের ধরণ | গুগল ক্লাউড কেএমএস | AWS KMS সম্পর্কে |
|---|---|---|---|
| শ্রোতা | দর্শকদের পাঠান | ||
| ইভেন্টগুলি | অফলাইন রূপান্তর বা লিডের জন্য উন্নত রূপান্তর | ||
| ইভেন্টগুলি | Google Ads গন্তব্যে অতিরিক্ত ডেটা উৎস হিসেবে পাঠানো ইভেন্ট | ||
| ইভেন্টগুলি | Google Analytics গন্তব্যে অতিরিক্ত ডেটা উৎস হিসেবে পাঠানো ইভেন্টগুলি |
গুগল ক্লাউড কেএমএস সেট আপ করুন
এনক্রিপশনের জন্য গুগল ক্লাউড কেএমএস রিসোর্স সেট আপ করার ধাপগুলি এখানে দেওয়া হল।
গুগল ক্লাউড কমান্ড লাইন ইন্টারফেস সেট আপ করুন
গুগল ক্লাউড কমান্ড লাইন ইন্টারফেসটি ইনস্টল এবং আরম্ভ করুন ।
একটি নতুন Google ক্লাউড প্রকল্প নির্বাচন করতে বা তৈরি করতে এবং ক্লাউড কী ম্যানেজমেন্ট পরিষেবা সক্ষম করতে, ক্লাউড KMS সক্ষম করুন এ ক্লিক করুন।
ক্লাউড KMS সক্ষম করুনআপনার পরিবেশে আপনার প্রকল্পটি সেট করতে,
gcloud config setকমান্ডটি ব্যবহার করুন। প্রকল্পটি ইতিমধ্যে আপনার পরিবেশে সেট করা আছে কিনা তা পরীক্ষা করতে,gcloud config listচালান।যদি কোনও
projectসেট না করা থাকে, অথবা আপনি আপনার কী-এর জন্য একটি ভিন্ন প্রকল্প ব্যবহার করতে চান,gcloud config setচালান:gcloud config set project PROJECT_ID
একটি কী তৈরি করুন
আরও তথ্যের জন্য, ক্লাউড কী ম্যানেজমেন্ট সার্ভিসের ওভারভিউ দেখুন।
একটি চাবির রিং তৈরি করুন।
gcloud kms keyrings create KEY_RING_NAME \ --location KEY_RING_LOCATIONআরও তথ্যের জন্য, একটি চাবির রিং তৈরি করুন দেখুন।
কী রিং-এ একটি কী তৈরি করুন। ROTATION_PERIOD কীটি ঘোরানোর জন্য ব্যবধান নির্দেশ করে এবং NEXT_ROTATION_TIME প্রথম ঘূর্ণন কখন ঘটবে তা তারিখ এবং সময় নির্দেশ করে।
উদাহরণস্বরূপ, প্রতি 30 দিন অন্তর কী ঘোরানোর জন্য এবং 1 সপ্তাহের মধ্যে প্রথম ঘূর্ণন সম্পাদন করার জন্য, ROTATION_PERIOD কে
30dএবং NEXT_ROTATION_TIME$(date --utc --date="next week" --iso-8601=seconds)এ সেট করুন।gcloud kms keys create KEY_NAME \ --keyring KEY_RING_NAME \ --location KEY_RING_LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time "NEXT_ROTATION_TIME"আরও তথ্যের জন্য, একটি কী তৈরি করুন দেখুন।
একটি ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডার তৈরি করুন
এই বিভাগটি ওয়ার্কলোড আইডেন্টিটি ফেডারেশনের একটি সংক্ষিপ্ত বিবরণ। আরও তথ্যের জন্য, ওয়ার্কলোড আইডেন্টিটি ফেডারেশন দেখুন।
একটি ওয়ার্কলোড আইডেন্টিটি পুল (WIP) তৈরি করুন। পুলের
locationঅবশ্যইglobalহতে হবে।gcloud iam workload-identity-pools create WIP_ID \ --location=global \ --display-name="WIP_DISPLAY_NAME" \ --description="WIP_DESCRIPTION"আরও তথ্যের জন্য, ওয়ার্কলোড আইডেন্টিটি পুল এবং প্রোভাইডার পরিচালনা করুন দেখুন।
একটি ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডার তৈরি করুন।
--attribute-conditionআর্গুমেন্ট যাচাই করে যে কলকারী একটি গোপনীয় ম্যাচ সার্ভিস অ্যাকাউন্ট।gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location=global \ --workload-identity-pool=WIP_ID \ --display-name="PROVIDER_DISPLAY_NAME" \ --description="PROVIDER_DESCRIPTION" \ --attribute-mapping="google.subject=assertion.sub,google.groups=[\"PROVIDER_ID\"]" \ --attribute-condition="assertion.swname == 'CONFIDENTIAL_SPACE' && 'STABLE' in assertion.submods.confidential_space.support_attributes && ['cfm-services@admcloud-cfm-services.iam.gserviceaccount.com'].exists( a, a in assertion.google_service_accounts) && 'ECDSA_P256_SHA256:6b1f357b59e9407fb017ca0e3e783b2bd5acbfea6c83dd82971a4150df5b25f9' in assertion.submods.container.image_signatures.map(sig, sig.signature_algorithm+':'+sig.key_id)" \ --issuer-uri="https://confidentialcomputing.googleapis.com" \ --allowed-audiences="https://sts.googleapis.com"WIP প্রদানকারীকে কী ডিক্রিপ্টারের ভূমিকা প্রদান করুন।
# Grants the role to the WIP provider. gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING_NAME \ --location KEY_RING_LOCATION \ --member "principalSet://iam.googleapis.com/projects/PROJECT_ID/locations/global/workloadIdentityPools/WIP_ID/group/PROVIDER_ID" \ --role "roles/cloudkms.cryptoKeyDecrypter"যদি আপনি অফলাইন রূপান্তরের জন্য ইভেন্ট ডেটা এনক্রিপ্ট করতে চান এবং লিডের জন্য উন্নত রূপান্তর করতে চান, তাহলে Google পরিষেবা অ্যাকাউন্ট
datamanager-api@datamanager-ga.iam.gserviceaccount.comকে কী ডিক্রিপ্টারের ভূমিকা প্রদান করুন।# Grants the role to the Google service account. gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING_NAME \ --location KEY_RING_LOCATION \ --member "serviceAccount:datamanager-api@datamanager-ga.iam.gserviceaccount.com" \ --role "roles/cloudkms.cryptoKeyDecrypter"
এনক্রিপ্ট ডেটা বিভাগে যান।
AWS KMS সেট আপ করুন
এনক্রিপশনের জন্য AWS KMS রিসোর্স সেট আপ করার ধাপগুলি এখানে দেওয়া হল।
AWS কমান্ড লাইন ইন্টারফেস সেট আপ করুন
- AWS কমান্ড লাইন ইন্টারফেস ইনস্টল করুন ।
ইনস্টলেশন যাচাই করতে নিম্নলিখিত কমান্ডটি চালান:
aws --versionসফল ইনস্টলেশনের জন্য আউটপুটের একটি স্নিপেট এখানে দেওয়া হল:
aws-cli/2.31.12 Python/3.13.7 ...
একজন AWS ব্যবহারকারী সেট আপ করুন এবং সাইন ইন করুন
- AWS কমান্ড লাইন ইন্টারফেস ব্যবহারের জন্য পূর্বশর্তগুলি পূরণ করুন।
- IAM আইডেন্টিটি সেন্টার সেশনে সাইন ইন করুন ।
একটি কী তৈরি করুন
একটি সিমেট্রিক KMS কী (KEK) তৈরি করুন।
aws kms create-key \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT \ --description "KEK for Confidential Matching Data Encryption"আউটপুটে
KeyMetadataঅধীনেArnটি লক্ষ্য করুন। অন্যান্য ধাপে আপনার এই Amazon Resource Name (ARN) এর প্রয়োজন হবে।AWS_KEY_ARNঐচ্ছিক: আপনার পছন্দের একটি উপনাম ব্যবহার করে একটি কী উপনাম তৈরি করুন।
aws kms create-alias \ --alias-name "alias/AWS_KEY_ALIAS" \ --target-key-id AWS_KEY_ARNউপনামের প্রয়োজন নেই, তবে এটি AWS কমান্ড লাইন ইন্টারফেস কমান্ড তৈরির জন্য কার্যকর। উদাহরণস্বরূপ, আপনি উপনাম ব্যবহার করে ARN কীটি পুনরুদ্ধার করতে পারেন:
aws kms describe-key --key-id "alias/AWS_KEY_ALIAS" \ --query 'KeyMetadata.Arn' \ --output text
একটি OpenID Connect পরিচয় প্রদানকারী তৈরি করুন
একটি OpenID Connect (OIDC) পরিচয় প্রদানকারী তৈরি করুন । আপনাকে প্রতি AWS অ্যাকাউন্টে শুধুমাত্র একবার এই ধাপটি সম্পাদন করতে হবে।
aws iam create-open-id-connect-provider \
--url https://confidentialcomputing.googleapis.com \
--client-id-list AUDIENCE \
--thumbprint-list "08745487e891c19e3078c1f2a07e452950ef36f6"
আউটপুট থেকে OIDC প্রোভাইডার ARN লক্ষ্য করুন। অন্যান্য ধাপে আপনার এটির প্রয়োজন হবে।
AWS_OIDC_PROVIDER_ARN
একটি IAM নীতি তৈরি করুন
নিম্নলিখিত বিষয়বস্তু সহ
kms-decrypt-policy.jsonনামে একটি JSON ফাইল তৈরি করুন:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "AWS_KEY_ARN" } ] }JSON ফাইল এবং আপনার পছন্দের একটি নীতির নাম ব্যবহার করে একটি IAM নীতি তৈরি করুন ।
aws iam create-policy \ --policy-name "AWS_POLICY_NAME" \ --policy-document file://kms-decrypt-policy.jsonআউটপুটে IAM নীতি ARN লক্ষ্য করুন। অন্যান্য ধাপে আপনার এটির প্রয়োজন হবে।
AWS_IAM_POLICY_ARN
একটি IAM ভূমিকা তৈরি করুন এবং সংযুক্ত করুন
পূর্ববর্তী ধাপ থেকে নিম্নলিখিত বিষয়বস্তু এবং OIDC প্রদানকারী ARN সহ
role-trust-policy.jsonনামে একটি JSON ফাইল তৈরি করুন:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "AWS_OIDC_PROVIDER_ARN" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "confidentialcomputing.googleapis.com:aud": "cfm-awsresource", "aws:RequestTag/swname": "CONFIDENTIAL_SPACE", "aws:RequestTag/container.signatures.key_ids": "6b1f357b59e9407fb017ca0e3e783b2bd5acbfea6c83dd82971a4150df5b25f9" }, "StringLike": { "aws:RequestTag/confidential_space.support_attributes": "*STABLE*" } } } ] }আপনার পছন্দের একটি ভূমিকার নাম দিয়ে একটি IAM ভূমিকা তৈরি করুন ।
aws iam create-role \ --role-name "AWS_IAM_ROLE_NAME" \ --assume-role-policy-document file://role-trust-policy.jsonIAM নীতির সাথে ভূমিকা নীতি সংযুক্ত করুন ।
aws iam attach-role-policy \ --role-name "AWS_IAM_ROLE_NAME" \ --policy-arn "AWS_IAM_POLICY_ARN"
ডেটা এনক্রিপ্ট করুন
ডেটা ম্যানেজার API-তে এনক্রিপশনের জন্য একটি ডেটা এনক্রিপশন কী (DEK) প্রয়োজন। DEK হল একটি সিমেট্রিক কী যা আপনি ডেটা এনক্রিপ্ট করতে ব্যবহার করেন। আপনার DEK আপনার Google ক্লাউড বা AWS KMS কী ব্যবহার করে এনক্রিপ্ট করা হয়েছে। আপনি অনুরোধের অংশ হিসাবে এনক্রিপ্ট করা DEK পাঠান।
এনক্রিপশনের অনুরোধে ডেটা প্রস্তুত করতে, এনক্রিপ্ট না করা ডেটার জন্য আপনি যে ফর্ম্যাটিং এবং হ্যাশিং নির্দেশিকা ব্যবহার করবেন সেই একই নির্দেশিকা অনুসরণ করুন।
হ্যাশ না করা মানগুলি এনক্রিপ্ট করবেন না। উদাহরণস্বরূপ, একটি AddressInfo এর region_code বা postal_code ।
প্রতিটি ক্ষেত্রের ডেটা ফর্ম্যাট এবং হ্যাশ হয়ে গেলে, নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে হ্যাশড মানটি এনক্রিপ্ট করুন:
- Base64 এনকোডিং ব্যবহার করে হ্যাশ বাইটগুলি এনকোড করুন।
- আপনার DEK ব্যবহার করে Base64-এনকোডেড হ্যাশ এনক্রিপ্ট করুন।
- হেক্স অথবা বেস৬৪ এনকোডিং ব্যবহার করে এনক্রিপশন প্রক্রিয়া থেকে আউটপুট এনকোড করুন।
- ক্ষেত্রের জন্য এনকোড করা মান ব্যবহার করুন।
- অনুরোধে
encryption_infoএবংencodingসেট করুন।
শেষ ধাপটি সম্পূর্ণ করতে, IngestAudienceMembersRequest বা IngestEventsRequest পরিবর্তন করুন যাতে আপনি আপনার ডেটা এনক্রিপ্ট করেছেন তা নির্দেশ করতে পারেন:
-
encryption_infoক্ষেত্রটি সেট করুন। - এনক্রিপ্ট করা ক্ষেত্রের মানগুলি এনকোড করতে ব্যবহৃত এনকোডিংয়ে
encodingক্ষেত্রটি সেট করুন।
এখানে একটি Google Cloud KMS কী ব্যবহার করে এবং এনক্রিপশন এবং এনকোডিং ক্ষেত্র সেট সহ একটি অনুরোধের একটি স্নিপেট দেওয়া হল:
{
...
"encryptionInfo": {
"gcpWrappedKeyInfo": {
"kekUri": "gcp-kms://projects/PROJECT_ID/locations/KEY_RING_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME",
"wipProvider": "projects/PROJECT_ID/locations/global/workloadIdentityPools/WIP_ID/providers/PROVIDER_ID",
"keyType": "XCHACHA20_POLY1305",
"encryptedDek": "ENCRYPTED_DEK"
}
},
"encoding": "ENCODING"
}
ডেটা ম্যানেজার API লাইব্রেরি এবং ইউটিলিটি ব্যবহার করে একটি অনুরোধ তৈরি এবং পাঠানোর জন্য, জাভার জন্য IngestAudienceMembersWithEncryption কোড নমুনা বা Python এর জন্য ingest_audience_members_with_encryption কোড নমুনা দেখুন।