AWS - Redshift Enum

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS रेड टीम एक्सपर्ट) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

अमेज़न रेडशिफ्ट

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

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

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

KMS

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

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

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

रेडशिफ्ट फिर KMS से सीईके, स्तर दो, को डिक्रिप्ट करने के लिए अनुरोध करता है। यह डिक्रिप्टेड सीईके फिर भी मेमोरी में स्टोर किया जाता है। रेडशिफ्ट फिर एक यादृच्छिक डेटाबेस एन्क्रिप्शन कुंजी, डीईके, स्तर तीन, बनाता है और उसे क्लस्टर की मेमोरी में लोड करता है। मेमोरी में डिक्रिप्टेड सीईके डीईके को एन्क्रिप्ट करता है, जो भी मेमोरी में स्टोर किया जाता है।

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

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

CloudHSM

CloudHSM के साथ रेडशिफ्ट का उपयोग

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

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

# 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

विशेषाधिकार

स्थिरता

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

Last updated