আইএম ভূমিকা অ্যাকাউন্টের সাথে অ্যামাজন এসইএসটিপি সার্ভিসের মাধ্যমে ইমেল পাঠানো কি সম্ভব?


10

নিম্নলিখিত নীতির সাথে আমার আইএএম ভূমিকা রয়েছে:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

আপনি দেখতে পাচ্ছেন, সম্পূর্ণ অ্যাক্সেস অনুমোদিত হয়েছে।

আইএএম শংসাপত্রগুলি এসএমটিপি শংসাপত্রগুলিতে রূপান্তর করতে আমি নিম্নলিখিত অজগরটি ব্যবহার করি:

#!/usr/bin/env python

from __future__ import print_function

import base64
import hashlib
import hmac
import json
import struct
import urllib2

METADATA_BASE = 'http://169.254.169.254/2012-01-12/meta-data'


def main():
    access_key_id, secret_access_key = get_access_creds()
    username, password = get_smtp_creds(access_key_id, secret_access_key)

    print('SMTP Username: %s' % username)
    print('SMTP Password: %s' % password)


def get_access_creds():
    url_handle = urllib2.urlopen('%s/iam/security-credentials' %
                                 (METADATA_BASE,))
    role_name = url_handle.read()
    url_handle.close()

    url_handle = urllib2.urlopen('%s/iam/security-credentials/%s' %
                                 (METADATA_BASE, role_name))
    sec_cred_doc = url_handle.read()
    url_handle.close()

    sec_cred_data = json.loads(sec_cred_doc)
    access_key_id =  buffer(sec_cred_data['AccessKeyId'])
    secret_access_key = buffer(sec_cred_data['SecretAccessKey'])

    return access_key_id, secret_access_key


def get_smtp_creds(access_key_id, secret_access_key):
    message = 'SendRawEmail'
    version = 0x02

    sig= hmac.new(
        secret_access_key,
        msg=message,
        digestmod=hashlib.sha256)
    sig_bytes = sig.digest()
    sig_and_version_bytes = (struct.pack('B', version) + sig_bytes)
    smtp_password = base64.b64encode(sig_and_version_bytes)

    return access_key_id, smtp_password

if __name__ == '__main__':
    main()

আমি যখন এই কোডটি চালনা করি তখন কিছু এসএমটিপি ব্যবহারকারীর নাম এবং পাসওয়ার্ড আউটপুট হয়। আমি উদাহরণস্বরূপ, স্ব স্বরযুক্তদের সাথে একটি বার্তা প্রেরণ করার চেষ্টা করি যখন, এটি ব্যর্থ হয়। এখানে একটি উদাহরণ কমান্ড লাইন:

swaks -s email-smtp.us-east-1.amazonaws.com --from wt@example.com --to wt@example.com --auth-user <smtp username from script above> --auth-password <smtp password from script above> --tls

উদাহরণ ডটকমটি অবশ্যই একটি স্থানধারক। প্রকৃত ডোমেনটি আমার AWS SES অ্যাকাউন্টে যাচাই করা হয়েছে।

প্রকৃতপক্ষে, আমি যদি মেটা-ডেটা থেকে ভূমিকা শংসাপত্রগুলি আবিষ্কার না করে আইএএম ব্যবহারকারী থেকে রূপান্তর করতে একই কোডটি চালিত করি তবে আমি ইমেল প্রেরণের জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি ব্যবহার করতে পারি fine

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

কোন চিন্তা?


1
আমি একই জিনিস চেষ্টা করেছি এবং একই সিদ্ধান্তে পৌঁছেছি। দেখে মনে হচ্ছে এসইএস এসএমটিপি-র জন্য আইএএম রোল শংসাপত্রগুলি বর্তমানে ব্যবহার করা সম্ভব নয়।
খ্রিস্টান

উত্তর:



1

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ses:SendRawEmail",
      "Resource": "*"
    }
  ]
}

-1

আপনি কেন সহজটি দিয়ে শুরু করবেন না?

{
    "Version": "2012-10-17",
    "Statement":[{
       "Effect": "Allow",
       "Action": ["ses:*"],
       "Resource":"*"
       }
    ]
 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.