Sie müssen kein solides MySQL-Passwort schreiben Bitte ersetzen Sie das Innere von {} entsprechend
CREATE USER '{MySQL-Benutzername}'@'%' IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS'; #Benutzer erstellt
GRANT ALL PRIVILEGES ON {MySQL DB Name}.* TO '{MySQL-Benutzername}'@'%' REQUIRE SSL; #Behörde
Machen Sie eine Richtlinie wie diese
Wenn Sie direkt mit json verbinden, sieht es so aus
{
"Effect": "Allow",
"Action": "rds-db:connect",
"Resource": "arn:aws:rds-db:{AWS::Region}:{AWS::AccountId}:dbuser:cluster-{Ressourcen-ID}/{MySQL-Benutzername}",
}
CloudFormation sieht so aus
iamRole:
- Effect: Allow
Action:
- "rds-db:connect"
Resource:
- 'Fn::Join':
- ':'
- - 'arn:aws:rds-db'
- Ref: 'AWS::Region'
- Ref: 'AWS::AccountId'
- 'dbuser:cluster-{Ressourcen-ID}/{MySQL-Benutzername}'
Stellen Sie ein solches Token (temporäres Passwort) aus
client = boto3.client("rds")
#Bekomme Token
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
)
Nur das Einfach ~~
Recommended Posts