Der Zugriffsschlüssel und der geheime Zugriffsschlüssel können vom IAM-Benutzer unter "Zugriffsschlüssel generieren" erstellt werden. Bei dieser Methode muss der Zugriffsschlüssel jedoch in einem bestimmten Zeitraum ersetzt werden, was sehr problematisch ist. Daher wurde IAM ROLE EC2 zugewiesen, und der Zugriffsschlüssel sollte Osaraba sein. Bei Anwendung von IAM ROLE konnten der zuvor geschriebene temporäre AccessKey und SecretAccessKey jedoch nicht abgerufen werden. Ich habe so geschrieben
AWSCredentials credentials = new BasicAWSCredentials("Zugangsschlüssel", "シークレットZugangsschlüssel");
AWSSecurityTokenServiceClient sts = new AWSSecurityTokenServiceClient(credentials);
GetSessionTokenRequest req = new GetSessionTokenRequest();
GetSessionTokenResult res = sts.getSessionToken(req);
Credentials tmpCredentials = res.getCredentials();
String accessKeyId = tmpCredentials.getAccessKeyId();
String secretAccessKeyId = tmpCredentials.getSecretAccessKey();
Ich habe es kurz überprüft, aber die angenommene Rolle ist gut. Ursprünglich scheint es mit Ressourcen zwischen verschiedenen Konten zu spielen, Ich denke das ist in Ordnung.
AWSSecurityTokenService sts = new AWSSecurityTokenServiceClient();
AssumeRoleResult assumeRoleResult = sts.assumeRole(new AssumeRoleRequest()
.withRoleArn(ROLE_ARN)
.withRoleSessionName(ROLE_SESSION_NAME));
Credentials credentials = assumeRoleResult.getCredentials();
System.out.println("AccessKeyId=" + credentials.getAccessKeyId() + " SecretAccessKey=" + credentials.getSecretAccessKey()+ " SessionToken=" + credentials.getSessionToken());
Was muss ich für ROLE_ARN und ROLE_SESSION_NAME angeben? ROLE_ARN ist der ARN der Rolle
ROLE_SESSION_NAME ist eine schöne Zeichenfolge Bsp. Wie "role_session"
Für die letzte Rolle, die Sie verwenden möchten
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::xxxxxxxxxxxx:role/full_ec2_lambda"
]
}
Es ist in Ordnung, wenn Sie die Richtlinie von hinzufügen
Sie können jetzt temporäre Anmeldeinformationen abrufen.
Recommended Posts