Abrufen temporärer AWS-Anmeldeinformationen in PHP, Python

Einführung

Die Ausgabe eines Zugriffsschlüssels für EC2 unter AWS ist ein Anti-Pattern. Es ist am besten, den Schlüssel nicht auszugeben, da er gestohlen und verwendet werden kann. Es ist ein gutes Muster, einen temporären Zugriffsschlüssel mit der Bezeichnung IAM-Rolle an EC2 auszugeben.

Wird in Python verwendet

run.py


import boto3

session = boto3.session.Session(profile_name='prodaccess')
credentials = session.get_credentials()

#Fühlen Sie sich frei, diesen Wert mit boto zu verwenden.
print(credentials.access_key)
print(credentials.secret_key)
print(credentials.token)

Abrufen temporärer AWS-Anmeldeinformationen mit boto3

Verwendung mit PHP

Wird in Laravel verwendet

Es gibt eine Bibliothek namens aws-sdk-php-laravel.

aws-sdk-php-laravel Abrufen von AWS Elastic Search Service-Daten mit Laravel mithilfe der IAM-Rolle [Bereitstellung temporärer Authentifizierungsinformationen für das offizielle AWS SDK für PHP](https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/aws-sdk-php-v3-developer -guide.pdf)

composer require aws/aws-sdk-php

composer.json


{
    "require": {
        "aws/aws-sdk-php-laravel": "~3.0"
    }
}

Als offiziell

Verwenden Sie das PHP SDK direkt

createToken ist gut und was zu tun ist.

Es gibt auch ein Beispiel hier [https://gist.github.com/sators/38dbe25f655f1c783cb2c49e9873d58a].

python


$token = $RdsAuthGenerator->createToken($clusterEndpoint . ":" . $clusterPort, $clusterRegion, $dbUsername);
$mysqli = mysqli_init();
mysqli_options($mysqli, MYSQLI_READ_DEFAULT_FILE, "./my.cnf");
$mysqli->real_connect($clusterEndpoint, $dbUsername, $token, $dbDatabase, $clusterPort, NULL, MYSQLI_CLIENT_SSL);
if ($mysqli->connect_errno) {
    echo "Error: Failed to make a MySQL connection, here is why: <br />";
    echo "Errno: " . $mysqli->connect_errno . "<br />";
    echo "Error: " . $mysqli->connect_error . "<br />";
    exit;
}
/***** Example code to perform a query and return all tables in the DB *****/
$tableList = array();
$res = mysqli_query($mysqli,"SHOW TABLES");
while($cRow = mysqli_fetch_array($res))
{
    $tableList[] = $cRow[0];
}

Recommended Posts

Abrufen temporärer AWS-Anmeldeinformationen in PHP, Python
[Python] Scraping in AWS Lambda
Schreiben Sie die AWS Lambda-Funktion in Python
Vermeiden Sie verschachtelte Schleifen in PHP und Python
(Für mich) Flask_AWS_1 (Installieren Sie PHP, MySQL, phpMyAdmin, Python in einer virtuellen AWS-Umgebung)
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
POST JSON mit Python und empfange mit PHP
Reverse Assembler mit Python
Erste Schritte mit AWS IoT in Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Gruppierungskombination in Python / Ruby / PHP / Golang (Go)
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
[AWS IoT] Registrieren Sie Dinge in AWS IoT mithilfe des AWS IoT Python SDK
Operatoren ++, - können nicht in Python verwendet werden (Unterschied zu PHP)
[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda
Behandle Primzahlen mit Python / Ruby / PHP / Golang (Go)
Entwicklung des AWS SDK für Python (Boto3) in Visual Studio 2017
Umgang mit JSON in Ruby, Python, JavaScript, PHP
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python