diff --git a/pom.xml b/pom.xml
index 7cdd77cb..def47b61 100644
--- a/pom.xml
+++ b/pom.xml
@@ -234,12 +234,6 @@
${aws-java-sdk.version}
true
-
- software.amazon.awssdk
- sts
- ${aws-java-sdk.version}
- true
-
diff --git a/spring-vault-core/pom.xml b/spring-vault-core/pom.xml
index b3750f05..f9e8d403 100644
--- a/spring-vault-core/pom.xml
+++ b/spring-vault-core/pom.xml
@@ -189,21 +189,6 @@
-
- software.amazon.awssdk
- sts
- true
-
-
- software.amazon.ion
- ion-java
-
-
- com.fasterxml.jackson.dataformat
- jackson-dataformat-cbor
-
-
-
com.google.apis
diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java
index e5ab47b9..3d7d44cb 100644
--- a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java
+++ b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java
@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
@@ -47,7 +48,6 @@ import org.springframework.vault.support.SslConfiguration;
import org.springframework.vault.support.SslConfiguration.KeyStoreConfiguration;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestOperations;
-import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
/**
* Configuration using Spring's {@link org.springframework.core.env.Environment} to
@@ -98,8 +98,8 @@ import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
*
* Authentication method: {@code vault.authentication} (defaults to {@literal TOKEN},
* supported authentication methods are:
- * {@literal TOKEN, APPID, APPROLE, AWS_EC2, AZURE, CERT, CUBBYHOLE, KUBERNETES}, see
- * {@link AuthenticationMethod})
+ * {@literal TOKEN, APPID, APPROLE, AWS_EC2, AWS_IAM, AZURE, CERT, CUBBYHOLE, KUBERNETES},
+ * see {@link AuthenticationMethod})
* Token authentication
*
* - Vault Token: {@code vault.token}
@@ -130,6 +130,10 @@ import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
* - Identity Document URL: {@code vault.aws-ec2.identity-document} (defaults to
* {@link AwsEc2AuthenticationOptions#DEFAULT_PKCS7_IDENTITY_DOCUMENT_URI})
*
+ * AWS IAM authentication
+ *
+ * - Role: {@code vault.aws-iam.role} (since 3.0.2)
+ *
* Azure MSI authentication
*
* - Azure MSI path: {@code vault.azure-msi.azure-path} (since 2.2.1, defaults to
@@ -376,6 +380,7 @@ public class EnvironmentVaultConfiguration extends AbstractVaultConfiguration im
}
protected ClientAuthentication awsIamAuthentication() {
+
String role = getProperty("vault.aws-iam.role");
Assert.isTrue(StringUtils.hasText(role),
"Vault AWS-IAM authentication: Role (vault.aws-iam.role) must not be empty");
diff --git a/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java
index 10a87022..6980c670 100644
--- a/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java
+++ b/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java
@@ -29,7 +29,7 @@ import org.springframework.vault.authentication.AwsIamAuthentication;
import org.springframework.vault.authentication.ClientAuthentication;
/**
- * Unit tests for {@link EnvironmentVaultConfiguration} with AppRole authentication.
+ * Unit tests for {@link EnvironmentVaultConfiguration} with AWS IAM authentication.
*
* @author Nick Tan
*/
diff --git a/src/main/asciidoc/reference/imperative-template.adoc b/src/main/asciidoc/reference/imperative-template.adoc
index 0ed81cbc..d8a81260 100644
--- a/src/main/asciidoc/reference/imperative-template.adoc
+++ b/src/main/asciidoc/reference/imperative-template.adoc
@@ -178,7 +178,7 @@ vault.token=00000000-0000-0000-0000-000000000000
** Truststore type: `vault.ssl.trust-store-type` (optional, typically `jks`, supports also `pem`)
** Enabled SSL/TLS protocols: `vault.ssl.enabled-protocols` (since 2.3.2, optional, protocols separated with comma)
** Enabled SSL/TLS cipher suites: `vault.ssl.enabled-cipher-suites` (since 2.3.2, optional, cipher suites separated with comma)
-* Authentication method: `vault.authentication` (defaults to `TOKEN`, supported authentication methods are: `TOKEN`, `APPID`, `APPROLE`, `AWS_EC2`, `AZURE`, `CERT`, `CUBBYHOLE`, `KUBERNETES`)
+* Authentication method: `vault.authentication` (defaults to `TOKEN`, supported authentication methods are: `TOKEN`, `APPID`, `APPROLE`, `AWS_EC2`, `AWS_IAM`, `AZURE`, `CERT`, `CUBBYHOLE`, `KUBERNETES`)
**Authentication-specific property keys**
@@ -206,6 +206,10 @@ Any other value is used with `StaticUserId`.
* RoleId: `vault.aws-ec2.role-id` (*deprecated:* use `vault.aws-ec2.role` instead)
* Identity Document URL: `vault.aws-ec2.identity-document` (defaults to `http://169.254.169.254/latest/dynamic/instance-identity/pkcs7`)
+**<>**
+
+* Role: `vault.aws-iam.role`
+
**<>**
* Azure MSI path: `vault.azure-msi.azure-path` (defaults to `azure`)