AWS - Redshift Enum

HackTricks को समर्थन दें

Amazon Redshift

Redshift एक पूरी तरह से प्रबंधित सेवा है जो एक पेटाबाइट से अधिक आकार तक स्केल कर सकती है, जिसका उपयोग बिग डेटा समाधानों के लिए डेटा वेयरहाउस के रूप में किया जाता है। Redshift क्लस्टर्स का उपयोग करके, आप अपने डेटा सेट्स के खिलाफ तेज़, SQL-आधारित क्वेरी टूल्स और बिजनेस इंटेलिजेंस एप्लिकेशन का उपयोग करके विश्लेषण चला सकते हैं और अपने व्यवसाय के लिए अधिक समझ प्राप्त कर सकते हैं।

Redshift KMS या CloudHSM का उपयोग करके एन्क्रिप्शन कुंजियों के चार-स्तरीय पदानुक्रम का उपयोग करके आराम पर एन्क्रिप्शन प्रदान करता हैजब आपके क्लस्टर के लिए एन्क्रिप्शन सक्षम होता है, तो इसे अक्षम नहीं किया जा सकता और इसके विपरीत। जब आपके पास एक अनएन्क्रिप्टेड क्लस्टर होता है, तो इसे एन्क्रिप्ट नहीं किया जा सकता।

आपके क्लस्टर के लिए एन्क्रिप्शन केवल इसके निर्माण के दौरान हो सकता है, और एक बार एन्क्रिप्टेड होने के बाद, डेटा, मेटाडेटा, और कोई भी स्नैपशॉट भी एन्क्रिप्टेड होते हैं। एन्क्रिप्शन कुंजियों के स्तर इस प्रकार हैं, स्तर एक मास्टर कुंजी है, स्तर दो क्लस्टर एन्क्रिप्शन कुंजी है, CEK, स्तर तीन, डेटाबेस एन्क्रिप्शन कुंजी, DEK, और अंत में स्तर चार, डेटा एन्क्रिप्शन कुंजियाँ स्वयं

KMS

अपने क्लस्टर के निर्माण के दौरान, आप या तो Redshift के लिए डिफ़ॉल्ट KMS कुंजी का चयन कर सकते हैं या अपनी स्वयं की CMK का चयन कर सकते हैं, जो आपको कुंजी के नियंत्रण पर अधिक लचीलापन देता है, विशेष रूप से एक ऑडिटेबल दृष्टिकोण से।

Redshift के लिए डिफ़ॉल्ट KMS कुंजी स्वचालित रूप से Redshift द्वारा पहली बार कुंजी विकल्प का चयन और उपयोग किए जाने पर बनाई जाती है, और यह पूरी तरह से AWS द्वारा प्रबंधित होती है।

यह KMS कुंजी तब CMK मास्टर कुंजी, स्तर एक के साथ एन्क्रिप्ट की जाती है। यह एन्क्रिप्टेड KMS डेटा कुंजी तब क्लस्टर एन्क्रिप्शन कुंजी, CEK, स्तर दो के रूप में उपयोग की जाती है। यह CEK तब KMS द्वारा Redshift को भेजी जाती है जहां इसे क्लस्टर से अलग संग्रहीत किया जाता है। Redshift तब इस एन्क्रिप्टेड CEK को एक सुरक्षित चैनल के माध्यम से क्लस्टर को भेजता है जहां इसे मेमोरी में संग्रहीत किया जाता है।

Redshift तब KMS से CEK, स्तर दो को डिक्रिप्ट करने का अनुरोध करता है। यह डिक्रिप्टेड CEK तब भी मेमोरी में संग्रहीत होती है। Redshift तब एक रैंडम डेटाबेस एन्क्रिप्शन कुंजी, DEK, स्तर तीन बनाता है, और इसे क्लस्टर की मेमोरी में लोड करता है। मेमोरी में डिक्रिप्टेड CEK तब DEK को एन्क्रिप्ट करता है, जो भी मेमोरी में संग्रहीत होता है।

यह एन्क्रिप्टेड DEK तब एक सुरक्षित चैनल के माध्यम से भेजा जाता है और क्लस्टर से अलग Redshift में संग्रहीत होता है। अब CEK और DEK दोनों क्लस्टर की मेमोरी में एन्क्रिप्टेड और डिक्रिप्टेड रूप में संग्रहीत होते हैं। डिक्रिप्टेड DEK तब डेटा कुंजियों, स्तर चार, को एन्क्रिप्ट करने के लिए उपयोग किया जाता है, जो Redshift द्वारा डेटाबेस में प्रत्येक डेटा ब्लॉक के लिए रैंडम रूप से उत्पन्न होती हैं।

आप AWS Trusted Advisor का उपयोग करके अपने Amazon S3 बकेट्स की कॉन्फ़िगरेशन की निगरानी कर सकते हैं और सुनिश्चित कर सकते हैं कि बकेट लॉगिंग सक्षम है, जो सुरक्षा ऑडिट करने और S3 में उपयोग पैटर्न को ट्रैक करने के लिए उपयोगी हो सकता है।

CloudHSM

CloudHSM के साथ Redshift का उपयोग करना

जब आप अपने एन्क्रिप्शन को करने के लिए CloudHSM के साथ काम कर रहे होते हैं, तो सबसे पहले आपको अपने HSM क्लाइंट और Redshift के बीच एक विश्वसनीय कनेक्शन सेट अप करना होता है जबकि क्लाइंट और सर्वर प्रमाणपत्रों का उपयोग करते हुए।

यह कनेक्शन सुरक्षित संचार प्रदान करने के लिए आवश्यक है, जिससे एन्क्रिप्शन कुंजियाँ आपके HSM क्लाइंट और आपके Redshift क्लस्टर्स के बीच भेजी जा सकें। एक रैंडम रूप से उत्पन्न निजी और सार्वजनिक कुंजी जोड़ी का उपयोग करते हुए, Redshift एक सार्वजनिक क्लाइंट प्रमाणपत्र बनाता है, जिसे एन्क्रिप्ट और Redshift द्वारा संग्रहीत किया जाता है। इसे डाउनलोड और आपके HSM क्लाइंट में पंजीकृत किया जाना चाहिए, और सही HSM विभाजन को सौंपा जाना चाहिए।

आपको तब अपने HSM क्लाइंट के निम्नलिखित विवरणों के साथ Redshift को कॉन्फ़िगर करना होगा: HSM IP पता, HSM विभाजन नाम, HSM विभाजन पासवर्ड, और सार्वजनिक HSM सर्वर प्रमाणपत्र, जिसे CloudHSM द्वारा एक आंतरिक मास्टर कुंजी का उपयोग करके एन्क्रिप्ट किया जाता है। एक बार यह जानकारी प्रदान कर दी गई, Redshift पुष्टि और सत्यापित करेगा कि यह कनेक्ट और विकास विभाजन तक पहुंच सकता है।

यदि आपकी आंतरिक सुरक्षा नीतियाँ या शासन नियंत्रण यह निर्धारित करते हैं कि आपको कुंजी रोटेशन लागू करना चाहिए, तो यह Redshift के साथ संभव है जिससे आप एन्क्रिप्टेड क्लस्टर्स के लिए एन्क्रिप्शन कुंजियों को घुमा सकते हैं, हालांकि, आपको यह जानना चाहिए कि कुंजी रोटेशन प्रक्रिया के दौरान, यह क्लस्टर को बहुत कम समय के लिए अनुपलब्ध बना देगा, और इसलिए यह सबसे अच्छा है कि आप केवल तभी कुंजियों को घुमाएं जब आपको इसकी आवश्यकता हो, या यदि आपको लगता है कि वे समझौता हो गए हैं।

रोटेशन के दौरान, Redshift आपके क्लस्टर और उस क्लस्टर के किसी भी बैकअप के लिए CEK को घुमाएगा। यह क्लस्टर के लिए DEK को घुमाएगा लेकिन S3 में संग्रहीत स्नैपशॉट्स के लिए DEK को घुमाना संभव नहीं है जो DEK का उपयोग करके एन्क्रिप्ट किए गए हैं। यह क्लस्टर को 'कुंजियों को घुमा रहा है' की स्थिति में डाल देगा जब तक कि प्रक्रिया पूरी नहीं हो जाती, जब स्थिति 'उपलब्ध' पर लौट आएगी।

Enumeration

# Get clusters
aws redshift describe-clusters
## Get if publicly accessible
aws redshift describe-clusters | jq -r ".Clusters[].PubliclyAccessible"
## Get DB username to login
aws redshift describe-clusters | jq -r ".Clusters[].MasterUsername"
## Get endpoint
aws redshift describe-clusters | jq -r ".Clusters[].Endpoint"
## Public addresses of the nodes
aws redshift describe-clusters | jq -r ".Clusters[].ClusterNodes[].PublicIPAddress"
## Get IAM roles of the clusters
aws redshift describe-clusters | jq -r ".Clusters[].IamRoles"

# Endpoint access & authorization
aws redshift describe-endpoint-access
aws redshift describe-endpoint-authorization

# Get credentials
aws redshift get-cluster-credentials --db-user <username> --cluster-identifier <cluster-id>
## By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).
aws redshift get-cluster-credentials-with-iam --cluster-identifier <cluster-id>
## Gives creds to access redshift with the IAM redshift permissions given to the current AWS account
## More in https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html

# Authentication profiles
aws redshift describe-authentication-profiles

# Snapshots
aws redshift describe-cluster-snapshots

# Scheduled actions
aws redshift describe-scheduled-actions

# Connect
# The redshift instance must be publicly available (not by default), the sg need to allow inbounds connections to the port and you need creds
psql -h redshift-cluster-1.sdflju3jdfkfg.us-east-1.redshift.amazonaws.com -U admin -d dev -p 5439

Privesc

AWS - Redshift Privesc

Persistence

निम्नलिखित क्रियाएँ क्लस्टर को अन्य AWS खातों तक पहुँच प्रदान करने की अनुमति देती हैं:

HackTricks को समर्थन दें

Last updated