Vous n'avez pas besoin d'écrire un mot de passe MySQL solide Veuillez remplacer l'intérieur de {} le cas échéant
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é
É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}'
É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