অ্যামাজন ইলাস্টিক অনুসন্ধান ক্লাস্টারের জন্য উপযুক্ত অ্যাক্সেস নীতি


99

আমি সম্প্রতি নতুন অ্যামাজন ইলাস্টিকসার্চ পরিষেবাটি ব্যবহার শুরু করেছি এবং আমার যে অ্যাক্সেস নীতি দরকার তা আমি বুঝতে পারি না যাতে আমি কেবলমাত্র আমার ইসি 2 উদাহরণ থেকে পরিষেবাগুলিতে অ্যাক্সেস করতে পারি যা তাদের নির্দিষ্ট আইএএম ভূমিকা রাখে।

আমি বর্তমানে ইএস ডোমেনের জন্য নিযুক্ত অ্যাক্সেস পলিসির একটি উদাহরণ এখানে রেখেছি:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::[ACCOUNT_ID]:role/my_es_role",
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN]/*"
    }
  ]
}

তবে আমি যেমন বলেছি, এটি কাজ করে না। আমি ইসি 2 ইভেন্টে লগইন করেছি (যার my_es_roleসাথে এটির ভূমিকা রয়েছে ) এবং "https: //*.es.amazonaws.com" শেষ পয়েন্টে একটি সহজ কার্ল কল চালানোর চেষ্টা করেছি, আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

Message "বার্তা": "ব্যবহারকারী: বেনাম সঞ্চালনের জন্য অনুমোদিত নয়: es: ESHttp রিসোর্সে গেট করুন: আরএন: আওস: এসএস: ইউএস-ইস্ট -১: [এসিসিপিআইডিআইডি]: ডোমেন / [ইএস_ডোভার] /"}

কেউ কি জানেন যে এটি কাজ করার জন্য অ্যাক্সেস নীতিতে আমার কী পরিবর্তন করতে হবে?


14
সাবধান, ইলাস্টিক অনুসন্ধান অ্যাক্সেস নীতি পরিবর্তনগুলি প্রায় তাত্ক্ষণিক অন্যান্য আইএএম পরিবর্তনের থেকে পৃথক হতে প্রয়োগ করতে অনেক সময় নেয়। "প্রসেসিং ..." না লক্ষ্য করে কেবল "প্রয়োগ" ক্লিক করুন এবং ট্যাবটি স্যুইচ করা সহজ
সিরিল ডুচন-ডরিস

উত্তর:


63

আপনি কেবল আইএএম-এ অ্যাক্সেস লক করতে পারেন তবে কীভাবে আপনার ব্রাউজারে কিবানা দেখতে পাবেন? আপনি একটি প্রক্সি সেটআপ করতে পারেন ( গিস্ট এবং / অথবা এনপিএম মডিউল দেখুন) ) বা ফলাফল দেখার জন্য আইএএম এবং আইপি-ভিত্তিক অ্যাক্সেস উভয়ই সক্ষম করতে পারবেন।

আমি নীচের অ্যাক্সেস নীতি দিয়ে আইএএম অ্যাক্সেস উভয়ই আইপি-সীমাবদ্ধ অ্যাক্সেস পেতে সক্ষম হয়েছি। অর্ডারটি গুরুত্বপূর্ণ: নোটটি গুরুত্বপূর্ণ: আইএএম-এর বিবৃতি দেওয়ার আগে আমি এটি আইপি-ভিত্তিক বিবৃতি দিয়ে কাজ করতে পারিনি।

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::xxxxxxxxxxxx:root"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-west-2:xxxxxxxxxxxx:domain/my-elasticsearch-domain/*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-west-2:xxxxxxxxxxxx:domain/my-elasticsearch-domain/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.168.1.0",
            "192.168.1.1"
          ]
        }
      }
    }
  ]
}

আমার ইসি 2 উদাহরণটির arn:aws:iam::aws:policy/AmazonESFullAccess নীতি সহ একটি উদাহরণ প্রোফাইল রয়েছে । লগস্ট্যাশ -লগস্ট্যাশ-আউটপুট-আমাজন-এস আউটপুট প্লাগইন ব্যবহার করে অনুরোধগুলিতে স্বাক্ষর করা উচিত । আমার ইসি 2 ইভেন্টে চলমান লোগস্ট্যাশ এর মতো একটি আউটপুট বিভাগ অন্তর্ভুক্ত করে:

output {
    amazon_es {
        hosts => ["ELASTICSEARCH_HOST"]
        region => "AWS_REGION"
    }
    # If you need to do some testing & debugging, uncomment this line:
    # stdout { codec => rubydebug }
}

অ্যাক্সেস পলিসিতে আমি দুটি আইপি থেকে কিবানা অ্যাক্সেস করতে পারি (192.168.1.0 এবং 192.168.1.1)।


হাই, আপনি যদি কেবল আইএএম-ভিত্তিক নীতি ব্যবহার করেন তবে প্লাগইনটি ব্যবহার করতে হবে। আপনার অ্যাক্সেস নীতি আইপি ঠিকানার উপর ভিত্তি করে আপনি লগস্ট্যাশে স্ট্যান্ডার্ড ইলাস্টিকস স্টার প্লাগইন ব্যবহার করতে পারেন। সেই ক্ষেত্রে আপনার কোনও ইনস্টলেন্স প্রোফাইলের দরকার নেই। এছাড়াও, ভিসিসিতে ইএস পরিষেবা পাওয়া যায় না। সংযোগ করতে আপনাকে পাবলিক আইপি ঠিকানা ব্যবহার করতে হবে। নিশ্চিত না যে আপনার 192.168 ঠিকানাগুলির উল্লেখগুলি অন্য কোনও কিছুর বিকল্প কিনা, তবে বিভ্রান্ত হতে পারে।
গ্যারেথ ম্যাকডেইড 22'16

aws:SourceIpআমার উদাহরণে 'র যাতে আপনি Kibana ব্যবহার করতে পারেন আপনার ব্যক্তিগত ওয়ার্কস্টেশন আইপি হতে উদ্দেশ্যে করা হয়। আইএএম-সীমাবদ্ধ অ্যাক্সেস একটি বা একাধিক ইসি 2 দৃষ্টান্ত ইলাস্টিকের অনুসন্ধানে কোনও আইপি বা কোন নির্দিষ্ট আইডি বা সিআইডিআর ব্লকের অন্তর্ভুক্ত তা ভেবে চিন্ত না করেই লিখতে সক্ষম করে।
পিট

4
এটি লক্ষণীয় যে আপনার ভিপিসির প্রাইভেট আইপি সিআইডিআর পরিসীমা সীমাবদ্ধ করা কার্যকর বলে মনে হচ্ছে না। ইএস ভিপিসি বা কোনও কিছুর মধ্যে পরিচালনা করে না।
স্পেনটেকি

আপনার উত্তরে একটি নমুনা নীতি দেওয়ার জন্য ধন্যবাদ; aws:SourceIpআপনি যে উদাহরণটি দিয়েছিলেন, তেমন আমি কীবানাকে ভয়ঙ্কর "ব্যবহারকারীর: বেনামে" ত্রুটিটি পেরিয়ে ফেলতে পারিনি যতক্ষণ না আমি একটি স্কেলারের মান থেকে অ্যারেতে পরিবর্তন করি । (আমি সিআইডিআর স্বরলিপি করছি, যদি এটি অন্য কাউকে সাহায্য করে।) এডাব্লুএস ইএসের জন্য নীতি নির্ধারণের পুরো প্রক্রিয়াটি হতাশার মতো হবে যদি প্রতিটি নীতিগত পরিবর্তন 20 মিনিটের জন্য রহস্যময় "প্রক্রিয়াকরণ" অবস্থায় গুচ্ছটিকে না রাখে as নীতিটি সাবধানতার সাথে পাথরের ট্যাবলেটগুলিতে লেখা আছে বা তারা যা করছে তা।
রবার্ট ক্যালহাউন

38

এডাব্লুএস ডক অনুসারে এবং আপনি (এবং আমি) কেবলমাত্র পরীক্ষিত হিসাবে, আপনি কোনও ভূমিকা / অ্যাকাউন্ট / ব্যবহারকারী / ... এর জন্য কোনও এডাব্লুএস ইএস ডোমেনের অ্যাক্সেসকে সীমাবদ্ধ করতে পারবেন না এবং কেবল এটি সিআরএল করুন!

স্ট্যান্ডার্ড ক্লায়েন্টগুলি, যেমন কার্ল, পরিচয়-ভিত্তিক অ্যাক্সেস নীতিগুলির জন্য প্রয়োজনীয় অনুরোধ স্বাক্ষরটি সম্পাদন করতে পারে না। আপনাকে অবশ্যই একটি আইপি ঠিকানা-ভিত্তিক অ্যাক্সেস নীতি ব্যবহার করতে হবে যা বেনামে অ্যাক্সেসকে এই পদক্ষেপের জন্য নির্দেশাবলী সফলভাবে সম্পাদন করতে দেয়। ( http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg-search.html )

সুতরাং আপনার মূলত দুটি সমাধান রয়েছে:

  • আপনার অ্যাক্সেস নীতি পরিবর্তন করুন এবং এটিকে আইপি-তে সীমাবদ্ধ করুন, আমি মনে করি আপনি ব্যক্তিগত আইপি ব্যবহার করতে পারবেন না কারণ আপনার ইএস ক্লাস্টারটি আপনার ভিপিসির (ডিফল্ট বা না) বলে মনে হয় না। দয়া করে পাবলিক আইপি ব্যবহার করুন
  • আপনার অনুরোধ সাইন ইন করুন: http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-signing-service-requests

আপনি যদি নিজের অ্যাক্সেস নীতিটি (যেমন কোনও আইপি-তে সীমাবদ্ধ করার চেয়ে আরও নমনীয়) রাখতে চান তবে আপনার অনুরোধটি সাইন করা সম্ভবত সেরা সমাধান is তবে এটি কিছুটা জটিল বলে মনে হচ্ছে। আমি এখন পর্যন্ত চেষ্টা করি নি এবং সাহায্যের জন্য কোনও ডক খুঁজে পাচ্ছি না।


4
আমি আমার ল্যাপটপের পাবলিক আইপি ঠিকানা ব্যবহার করেছি এবং কার্ল / ব্রাউজার দিয়ে শেষ পয়েন্টটি অ্যাক্সেস করার চেষ্টা করেছি, তবে আমি এখনও ব্যবহারকারী: বেনামে ত্রুটি পেয়েছি।
অনন্ত গুপ্ত

7
আমি একই সমস্যা নিয়ে কাজ করছি এবং আমি লক্ষ করেছি যে aws ইলাস্টিকসার্চ দ্বারা পরিবর্তনগুলি প্রক্রিয়া করাতে খুব দীর্ঘ সময় লাগে।
নিমো

দুটি বিবৃতি সহ একটি অ্যাক্সেস পলিসি সেট করুন: একটি লগ লেখার আইএএম অ্যাক্সেসের জন্য, অন্যটি কেবানা দেখার আইপি-সীমাবদ্ধ অ্যাক্সেস সহ। বিশদগুলির জন্য আমার উত্তর দেখুন
পিট

4
আমি ভাবলাম "লুং" মানে মিনিট, ঘন্টা বা দিন। 10-15 মিনিটের মতো মনে হচ্ছে। আপনি দেখতে পাচ্ছেন যে আপনার ইএসের স্থিতি পরীক্ষা করার সময় (সবুজ 'অ্যাক্টিভ' আপডেট আপডেট হলে অন্যথায়, কমলা রঙের মতো কিছু 'প্রস্তুতি' থাকে
বাল্মীপুর

আমারও একই সমস্যা ছিল এবং অনুসন্ধানের পরে আমি এই সহজ গ্রন্থাগারটি পেয়েছি ।
gmajivu

6

পার্টিতে কিছুটা দেরি হলেও আমি আমার অনুরোধে স্বাক্ষর যুক্ত করে ঠিক একই সমস্যাটি মোকাবিলা করতে সক্ষম হয়েছি।

আপনি যদি পাইথন ব্যবহার করেন (যেমন আমি করি) আপনি নীচের লাইব্রেরিটি এটি প্রয়োগ করা বিশেষত সহজ করতে ব্যবহার করতে পারেন: https://github.com/DavidMuller/aws-requests-auth

এটা আমার জন্য পুরোপুরি কাজ করেন।


1

আপনার কেবল ইলাস্টিক অনুসন্ধান নীতিতে পুরো ব্যবহারকারীর নাম প্রয়োজন।

এই ক্ষেত্রে, আপনি ত্রুটি বার্তা থেকেই নিজের পুরো ব্যবহারকারীর নাম পেতে পারেন। আমার ক্ষেত্রে: "আর্ন: আউজ: এসটিএস :: [এসিকিউআইডিআইডি]: ধরে নেওয়া-ভূমিকা / [ল্যাম্বডিএপলিকআইবিসিএল] / [ল্যাম্বেডিএ"] "

    {
        "Version": "2012-10-17",
        "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:sts::xxxxxxxxxxxx:assumed-role/[lambda-role]/[full-lambda-name]"
            ]
          },
          "Action": "es:*",
          "Resource": "arn:aws:es:[region]:xxxxxxxxxxxxx:domain/[elasticsearch-domain-name]/*"
        }
      ]

    }

0

আপনি আইপি অ্যাড্রেস কোডিংয়ের মতো আইপি ভিত্তিক নীতি নয় বরং রিসোর্স ভিত্তিক নীতি বা পরিচয় ভিত্তিক নীতি ব্যবহার করতে পারেন।

অনুরোধটি সাইন করতে আপনার স্বাক্ষর সংস্করণ 4 ব্যবহার করতে হবে

জাভা বাস্তবায়নের জন্য দয়া করে http://mytechbites.blogspot.in/2017/04/secure-amazon-elastic-search-service.html দেখুন


0

রোল এআরএন পরিবর্তন করা দরকার। এটি দেখতে "আর্ন: আউজ: আইএএম :: [এসিকিউআইডিআইডি]: ভূমিকা / পরিষেবা-ভূমিকা / মাই_স_রোল" এর মতো দেখাবে


-2

আমি এটি করার চেষ্টাও করছি, এবং এটি Allow access to the domain from specific IP(s)আমার ইসি 2 উদাহরণের ইলাস্টিক আইপি ব্যবহার করে বিকল্পটি ব্যবহার করে কাজটি করতে পেরেছি (উদাহরণটির ব্যক্তিগত আইপি ব্যবহার করেও কাজ করতে পারে তবে আমি খুব বেশি নিশ্চিত নই)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.