La clé d'accès et la clé d'accès secrète peuvent être créées par l'utilisateur IAM par "Générer la clé d'accès". Cependant, cette méthode nécessite le remplacement de la clé d'accès dans un certain laps de temps, ce qui est assez gênant. Par conséquent, IAM ROLE a été attribué à EC2 et la clé d'accès devait être Osaraba, mais lorsque IAM ROLE a été appliqué, les clés temporaires AccessKey et SecretAccessKey que j'avais écrites auparavant n'ont pas pu être obtenues. J'écrivais comme ça
AWSCredentials credentials = new BasicAWSCredentials("clé d'accès", "シークレットclé d'accès");
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();
Je l'ai vérifié brièvement, mais le rôle d'assumer est bon. À l'origine, il semble gâcher les ressources entre différents comptes, Je pense que c'est bien.
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());
Que dois-je spécifier pour ROLE_ARN et ROLE_SESSION_NAME? ROLE_ARN est l'ARN du rôle
ROLE_SESSION_NAME est une belle chaîne ex. Comme "role_session"
Pour le dernier rouleau que vous souhaitez utiliser
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::xxxxxxxxxxxx:role/full_ec2_lambda"
]
}
C'est OK si vous ajoutez la politique de
Vous pouvez maintenant obtenir des informations d'identification temporaires.
Recommended Posts