Authentification sans mot de passe avec RDS et IAM (Python)

Vous n'avez pas besoin d'écrire un mot de passe MySQL solide Veuillez remplacer l'intérieur de {} le cas échéant

1. Créé par l'utilisateur

CREATE USER '{Nom d'utilisateur MySQL}'@'%' IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS'; #Utilisateur créé
GRANT ALL PRIVILEGES ON {Nom de la base de données MySQL}.* TO '{Nom d'utilisateur MySQL}'@'%' REQUIRE SSL; #Autorité

2. Politique IAM

Établissez une politique comme celle-ci

Si vous vous connectez directement avec json, cela ressemble à ceci

{
    "Effect": "Allow",
    "Action": "rds-db:connect",
    "Resource": "arn:aws:rds-db:{AWS::Region}:{AWS::AccountId}:dbuser:cluster-{ID de ressource}/{Nom d'utilisateur MySQL}",
}

CloudFormation ressemble à ceci

iamRole:
    - Effect: Allow
        Action:
        - "rds-db:connect"
        Resource:
        - 'Fn::Join':
            - ':'
            - - 'arn:aws:rds-db'
                - Ref: 'AWS::Region'
                - Ref: 'AWS::AccountId'
                - 'dbuser:cluster-{ID de ressource}/{Nom d'utilisateur MySQL}'

3. Connectez-vous avec un mot de passe temporaire!

Émettez un jeton (mot de passe temporaire) comme celui-ci

client = boto3.client("rds")

#Obtenez un jeton
token = client.generate_db_auth_token(
    DBHostname=RDS_HOST,
    Port=RDS_PORT,
    DBUsername=RDS_USER_NAME
)

db_connection = mysql.connector.connect(
    host=RDS_HOST,
    port=RDS_PORT,
    database=RDS_DB_NAME,
    user=RDS_USER_NAME,
    passwd=token
)

Seulement ça Facile ~~

Recommended Posts

Authentification sans mot de passe avec RDS et IAM (Python)
Programmation avec Python et Tkinter
Python et matériel - Utilisation de RS232C avec Python -
Authentification BASIC avec bouteille Python
python avec pyenv et venv
Fonctionne avec Python et R
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Essayez l'authentification de base de données IAM à partir de Python
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Scraping avec Node, Ruby et Python
Authentification à l'aide de l'authentification des utilisateurs tweepy et de l'authentification d'application (Python)
Processus d'authentification avec gRPC et authentification Firebase
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Encodage et décodage JSON avec python
Authentification de base, authentification Digest avec Flask
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lire et écrire NetCDF avec Python
J'ai joué avec PyQt5 et Python3
Lire et écrire du CSV avec Python
Intégration multiple avec Python et Sympy
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Modulation et démodulation FM avec Python
Émission de jetons d'authentification Firebase en Python et validation de jetons avec Fast API
Communiquez entre Elixir et Python avec gRPC
Construction de pipeline de données avec Python et Luigi
Calculer et afficher le poids standard avec python
Surveiller les pannes de Mojo avec Python et Skype
Modulation et démodulation FM avec Python Partie 3
Installation de Python et gestion des packages avec pip
Utilisation de Python et MeCab avec Azure Databricks
POSTER diversement avec Python et recevoir avec Flask
Capturer des images avec Pupil, python et OpenCV
Fractal pour faire et jouer avec Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Utilisez PIL ou Pillow avec Cygwin Python
Créer et décrypter du code César avec python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Lire et écrire des fichiers JSON avec Python
Gérer les "années et mois" en Python
J'ai installé et utilisé Numba avec Python3.5
Analyse des tweets avec Python, Mecab et CaboCha
Lier Python et JavaScript avec le notebook Jupyter
Surveillance du trafic avec Kibana, ElasticSearch et Python
Modulation et démodulation FM avec Python Partie 2
Crypter avec Ruby (Rails) et décrypter avec Python
Téléchargez facilement des mp3 / mp4 avec python et youtube-dl!
Faites fonctionner des appareils électroménagers avec Python et IRKit
Nettoyer l'environnement python avec Pythonz et virtualenv
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
Importer et exporter des images GeoTiff avec Python
J'utilise tox et Python 3.3 avec Travis-CI