[JAVA] Comment appliquer IAM ROLE à EC2 et obtenir temporairement AccessKey et SecretAccessKey

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

WS000001.JPG

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

Comment appliquer IAM ROLE à EC2 et obtenir temporairement AccessKey et SecretAccessKey
Comment obtenir et étudier Java SE8 Gold
[Rails] Comment émettre des messages de réussite et d'erreur
[Kotlin] Comment obtenir l'adresse IP et l'agent utilisateur
Comment utiliser et appliquer la classe JFrame / Canvas de Java
Comment exécuter JUnit par lots et obtenir une couverture
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux
Comment obtenir et ajouter des données depuis Firebase Firestore dans Ruby
[Java] Comment convertir du type String en type Path et obtenir le chemin
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser HttpClient de Java (Get)
Comment démarrer avec Slim
Comment utiliser EventBus3 et ThreadMode
Comment obtenir des paramètres dans Spark
Comment appeler des classes et des méthodes
Comment utiliser l'égalité et l'égalité (comment utiliser l'égalité)
Comment connecter Heroku et Sequel
Comment convertir LocalDate et Timestamp
Comment créer votre propre annotation en Java et obtenir la valeur