@ -18,50 +18,6 @@ import (
"github.com/hashicorp/terraform/states/remote"
)
const (
mockStsAssumeRoleArn = ` arn:aws:iam::555555555555:role/AssumeRole `
mockStsAssumeRolePolicy = ` {
"Version" : "2012-10-17" ,
"Statement" : {
"Effect" : "Allow" ,
"Action" : "*" ,
"Resource" : "*" ,
}
} `
mockStsAssumeRolePolicyArn = ` arn:aws:iam::555555555555:policy/AssumeRolePolicy1 `
mockStsAssumeRoleSessionName = ` AssumeRoleSessionName `
mockStsAssumeRoleTagKey = ` AssumeRoleTagKey `
mockStsAssumeRoleTagValue = ` AssumeRoleTagValue `
mockStsAssumeRoleTransitiveTagKey = ` AssumeRoleTagKey `
mockStsAssumeRoleValidResponse = ` < AssumeRoleResponse xmlns = "https://sts.amazonaws.com/doc/2011-06-15/" >
< AssumeRoleResult >
< AssumedRoleUser >
< Arn > arn : aws : sts : : 555555555555 : assumed - role / role / AssumeRoleSessionName < / Arn >
< AssumedRoleId > ARO123EXAMPLE123 : AssumeRoleSessionName < / AssumedRoleId >
< / AssumedRoleUser >
< Credentials >
< AccessKeyId > AssumeRoleAccessKey < / AccessKeyId >
< SecretAccessKey > AssumeRoleSecretKey < / SecretAccessKey >
< SessionToken > AssumeRoleSessionToken < / SessionToken >
< Expiration > 2099 - 12 - 31 T23 : 59 : 59 Z < / Expiration >
< / Credentials >
< / AssumeRoleResult >
< ResponseMetadata >
< RequestId > 01234567 - 89 ab - cdef - 0123 - 456789 abcdef < / RequestId >
< / ResponseMetadata >
< / AssumeRoleResponse > `
mockStsGetCallerIdentityValidResponseBody = ` < GetCallerIdentityResponse xmlns = "https://sts.amazonaws.com/doc/2011-06-15/" >
< GetCallerIdentityResult >
< Arn > arn : aws : iam : : 222222222222 : user / Alice < / Arn >
< UserId > AKIAI44QH8DHBEXAMPLE < / UserId >
< Account > 222222222222 < / Account >
< / GetCallerIdentityResult >
< ResponseMetadata >
< RequestId > 01234567 - 89 ab - cdef - 0123 - 456789 abcdef < / RequestId >
< / ResponseMetadata >
< / GetCallerIdentityResponse > `
)
var (
mockStsGetCallerIdentityRequestBody = url . Values {
"Action" : [ ] string { "GetCallerIdentity" } ,
@ -132,8 +88,8 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "role_arn" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -141,15 +97,15 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
@ -159,8 +115,8 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "assume_role_duration_seconds" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -168,26 +124,26 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { "POST" , "/" , url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "3600" } ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
{
Config : map [ string ] interface { } {
"bucket" : "tf-test" ,
"external_id" : "AssumeRoleExternalId" ,
"external_id" : awsbase . MockStsAssumeRoleExternalId ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "external_id" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -195,27 +151,27 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { "POST" , "/" , url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"ExternalId" : [ ] string { "AssumeRoleExternalId" } ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"ExternalId" : [ ] string { awsbase . MockStsAssumeRoleExternalId } ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
{
Config : map [ string ] interface { } {
"assume_role_policy" : m ockStsAssumeRolePolicy,
"assume_role_policy" : awsbase. M ockStsAssumeRolePolicy,
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "assume_role_policy" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -223,27 +179,27 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { "POST" , "/" , url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"Policy" : [ ] string { m ockStsAssumeRolePolicy} ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"Policy" : [ ] string { awsbase. M ockStsAssumeRolePolicy} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
{
Config : map [ string ] interface { } {
"assume_role_policy_arns" : [ ] interface { } { m ockStsAssumeRolePolicyArn} ,
"assume_role_policy_arns" : [ ] interface { } { awsbase. M ockStsAssumeRolePolicyArn} ,
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "assume_role_policy_arns" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -251,29 +207,29 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"PolicyArns.member.1.arn" : [ ] string { m ockStsAssumeRolePolicyArn} ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"PolicyArns.member.1.arn" : [ ] string { awsbase. M ockStsAssumeRolePolicyArn} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
{
Config : map [ string ] interface { } {
"assume_role_tags" : map [ string ] interface { } {
mockStsAssumeRoleTagKey: m ockStsAssumeRoleTagValue,
awsbase. MockStsAssumeRoleTagKey : awsbase . M ockStsAssumeRoleTagValue,
} ,
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "assume_role_tags" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -281,31 +237,31 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"Tags.member.1.Key" : [ ] string { m ockStsAssumeRoleTagKey} ,
"Tags.member.1.Value" : [ ] string { m ockStsAssumeRoleTagValue} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Tags.member.1.Key" : [ ] string { awsbase. M ockStsAssumeRoleTagKey} ,
"Tags.member.1.Value" : [ ] string { awsbase. M ockStsAssumeRoleTagValue} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,
{
Config : map [ string ] interface { } {
"assume_role_tags" : map [ string ] interface { } {
mockStsAssumeRoleTagKey: m ockStsAssumeRoleTagValue,
awsbase. MockStsAssumeRoleTagKey : awsbase . M ockStsAssumeRoleTagValue,
} ,
"assume_role_transitive_tag_keys" : [ ] interface { } { m ockStsAssumeRoleTagKey} ,
"assume_role_transitive_tag_keys" : [ ] interface { } { awsbase. M ockStsAssumeRoleTagKey} ,
"bucket" : "tf-test" ,
"key" : "state" ,
"region" : "us-west-1" ,
"role_arn" : m ockStsAssumeRoleArn,
"session_name" : m ockStsAssumeRoleSessionName,
"role_arn" : awsbase. M ockStsAssumeRoleArn,
"session_name" : awsbase. M ockStsAssumeRoleSessionName,
} ,
Description : "assume_role_transitive_tag_keys" ,
MockStsEndpoints : [ ] * awsbase . MockEndpoint {
@ -313,18 +269,18 @@ func TestBackendConfig_AssumeRole(t *testing.T) {
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : url . Values {
"Action" : [ ] string { "AssumeRole" } ,
"DurationSeconds" : [ ] string { "900" } ,
"RoleArn" : [ ] string { m ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { m ockStsAssumeRoleSessionName} ,
"Tags.member.1.Key" : [ ] string { m ockStsAssumeRoleTagKey} ,
"Tags.member.1.Value" : [ ] string { m ockStsAssumeRoleTagValue} ,
"TransitiveTagKeys.member.1" : [ ] string { m ockStsAssumeRoleTagKey} ,
"RoleArn" : [ ] string { awsbase. M ockStsAssumeRoleArn} ,
"RoleSessionName" : [ ] string { awsbase. M ockStsAssumeRoleSessionName} ,
"Tags.member.1.Key" : [ ] string { awsbase. M ockStsAssumeRoleTagKey} ,
"Tags.member.1.Value" : [ ] string { awsbase. M ockStsAssumeRoleTagValue} ,
"TransitiveTagKeys.member.1" : [ ] string { awsbase. M ockStsAssumeRoleTagKey} ,
"Version" : [ ] string { "2011-06-15" } ,
} . Encode ( ) } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : mockStsAssumeRoleValidResponse , ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. MockStsAssumeRoleValidResponseBody , ContentType : "text/xml" } ,
} ,
{
Request : & awsbase . MockRequest { Method : "POST" , Uri : "/" , Body : mockStsGetCallerIdentityRequestBody } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : m ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
Response : & awsbase . MockResponse { StatusCode : 200 , Body : awsbase. M ockStsGetCallerIdentityValidResponseBody, ContentType : "text/xml" } ,
} ,
} ,
} ,