Neulich habe ich an einer Veranstaltung teilgenommen
** "Übrigens habe ich einen Artikel zum Verschlüsseln und Hochladen in einen S3-Bucket geschrieben, aber zur Authentifizierung einen Zugriffsschlüssel verwendet!" ** (Nicht im Einklang mit den bewährten Sicherheitsmethoden)
Ich bemerkte das und beschloss, es zu ergänzen.
** Verschlüsseln von Daten, die mit AWS SDK für Java / SSE-KMS in S3 hochgeladen wurden ** ist eine Fortsetzung.
· Klicken Sie in IAM auf ** Neue Rolle erstellen **.
-Wählen Sie ** "Amazon EC2" **.
-Überprüfen Sie ** "Amazon S3 Full Access" ** und klicken Sie auf ** [Nächster Schritt] **.
-Geben Sie ** Rollennamen ** ein und klicken Sie auf ** [Rolle erstellen] **.
-Klicken Sie auf ** [Hinzufügen] ** von ** Key User **.
Wählen Sie die von Ihnen erstellte ** IAM-Rolle ** aus und klicken Sie auf ** [Anhängen] **.
Weisen Sie die erstellte IAM-Rolle der ** Ziel-EC2-Instanz ** zu.
-Geben Sie den ** IAM-Rollennamen ** ein / wählen Sie ihn aus und klicken Sie auf ** Übernehmen **.
-Wenn der Prozess erfolgreich ist, starten (starten) Sie die Ziel-EC2-Instanz und überprüfen Sie, ob die IAM-Rolle angewendet wird.
Geben Sie für Java-Code einfach die Anmeldeinformationen an.
Wechselpunkt
public class S3Access {
private static final String ENDPOINT_URL = "https://s3-ap-northeast-1.amazonaws.com";
private static final String REGION = "ap-northeast-1";
// private static final String ACCESS_KEY = "【Zugangsschlüssel】";
// private static final String SECRET_KEY = "[Geheimer Schlüssel]";
private static final String KMS_KEY_ID = "[KMS-Schlüssel-ID]";
(Unterlassung)
//--------------------------------------------------
//Client-Generierung
//--------------------------------------------------
private AmazonS3 getClient(String bucketName) throws Exception {
// //Authentifizierungsinformationen
// AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
//Client-Einstellungen
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTPS); //Protokoll
clientConfig.setConnectionTimeout(10000); //Verbindungszeitüberschreitung(ms)
//Endpunkteinstellung
EndpointConfiguration endpointConfiguration = new EndpointConfiguration(ENDPOINT_URL, REGION);
//Client-Generierung
AmazonS3 client = AmazonS3ClientBuilder.standard()
// .withCredentials(new AWSStaticCredentialsProvider(credentials))
.withClientConfiguration(clientConfig)
.withEndpointConfiguration(endpointConfiguration).build();
(Unterlassung)
** Löschen Sie die mit "//" am Zeilenanfang auskommentierte Zeile **.
Recommended Posts