signalfx.aws.ExternalIntegration
Explore with Pulumi AI
Splunk Observability AWS CloudWatch integrations using Role ARNs. For help with this integration see Connect to AWS CloudWatch.
NOTE When managing integrations, use a session token of an administrator to authenticate the Splunk Observability provider. See Operations that require a session token for an administrator.
WARNING This resource implements part of a workflow. Use it with
signalfx.aws.Integration
. Check with Splunk support for your realm’s AWS account id.
Example
resource "signalfx_aws_external_integration" "aws_myteam_extern" {
name = "My AWS integration"
}
data "aws_iam_policy_document" "signalfx_assume_policy" {
statement {
actions = ["sts:AssumeRole"]
principals {
type = "AWS"
identifiers = [signalfx_aws_external_integration.aws_myteam_extern.signalfx_aws_account]
}
condition {
test = "StringEquals"
variable = "sts:ExternalId"
values = [signalfx_aws_external_integration.aws_myteam_extern.external_id]
}
}
}
resource "aws_iam_role" "aws_splunk_role" {
name = "signalfx-reads-from-cloudwatch2"
description = "Splunk Observability Cloud integration to read out data and send it to signalfxs aws account"
assume_role_policy = data.aws_iam_policy_document.signalfx_assume_policy.json
}
resource "aws_iam_policy" "aws_splunk_policy" {
name = "SplunkObservabilityPolicy"
description = "AWS permissions required by the Splunk Observability Cloud"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"apigateway:GET",
"autoscaling:DescribeAutoScalingGroups",
"cloudfront:GetDistributionConfig",
"cloudfront:ListDistributions",
"cloudfront:ListTagsForResource",
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"directconnect:DescribeConnections",
"dynamodb:DescribeTable",
"dynamodb:ListTables",
"dynamodb:ListTagsOfResource",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:DescribeRegions",
"ec2:DescribeReservedInstances",
"ec2:DescribeReservedInstancesModifications",
"ec2:DescribeTags",
"ec2:DescribeVolumes",
"ecs:DescribeClusters",
"ecs:DescribeServices",
"ecs:DescribeTasks",
"ecs:ListClusters",
"ecs:ListServices",
"ecs:ListTagsForResource",
"ecs:ListTaskDefinitions",
"ecs:ListTasks",
"elasticache:DescribeCacheClusters",
"elasticloadbalancing:DescribeLoadBalancerAttributes",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeTags",
"elasticloadbalancing:DescribeTargetGroups",
"elasticmapreduce:DescribeCluster",
"elasticmapreduce:ListClusters",
"es:DescribeElasticsearchDomain",
"es:ListDomainNames",
"kinesis:DescribeStream",
"kinesis:ListShards",
"kinesis:ListStreams",
"kinesis:ListTagsForStream",
"lambda:GetAlias",
"lambda:ListFunctions",
"lambda:ListTags",
"logs:DeleteSubscriptionFilter",
"logs:DescribeLogGroups",
"logs:DescribeSubscriptionFilters",
"logs:PutSubscriptionFilter",
"organizations:DescribeOrganization",
"rds:DescribeDBClusters",
"rds:DescribeDBInstances",
"rds:ListTagsForResource",
"redshift:DescribeClusters",
"redshift:DescribeLoggingStatus",
"s3:GetBucketLocation",
"s3:GetBucketLogging",
"s3:GetBucketNotification",
"s3:GetBucketTagging",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:PutBucketNotification",
"sqs:GetQueueAttributes",
"sqs:ListQueues",
"sqs:ListQueueTags",
"states:ListStateMachines",
"tag:GetResources",
"workspaces:DescribeWorkspaces"
],
"Resource": "*"
}
]
}
EOF
}
resource "aws_iam_role_policy_attachment" "splunk_role_policy_attach" {
role = aws_iam_role.aws_splunk_role.name
policy_arn = aws_iam_policy.aws_splunk_policy.arn
}
resource "signalfx_aws_integration" "aws_myteam" {
enabled = true
integration_id = signalfx_aws_external_integration.aws_myteam_extern.id
external_id = signalfx_aws_external_integration.aws_myteam_extern.external_id
role_arn = aws_iam_role.aws_splunk_role.arn
# token = "abc123"
# key = "abc123"
regions = ["us-east-1"]
poll_rate = 300
import_cloud_watch = true
enable_aws_usage = true
}
Create ExternalIntegration Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ExternalIntegration(name: string, args?: ExternalIntegrationArgs, opts?: CustomResourceOptions);
@overload
def ExternalIntegration(resource_name: str,
args: Optional[ExternalIntegrationArgs] = None,
opts: Optional[ResourceOptions] = None)
@overload
def ExternalIntegration(resource_name: str,
opts: Optional[ResourceOptions] = None,
name: Optional[str] = None)
func NewExternalIntegration(ctx *Context, name string, args *ExternalIntegrationArgs, opts ...ResourceOption) (*ExternalIntegration, error)
public ExternalIntegration(string name, ExternalIntegrationArgs? args = null, CustomResourceOptions? opts = null)
public ExternalIntegration(String name, ExternalIntegrationArgs args)
public ExternalIntegration(String name, ExternalIntegrationArgs args, CustomResourceOptions options)
type: signalfx:aws:ExternalIntegration
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ExternalIntegrationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ExternalIntegrationArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ExternalIntegrationArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ExternalIntegrationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ExternalIntegrationArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var externalIntegrationResource = new SignalFx.Aws.ExternalIntegration("externalIntegrationResource", new()
{
Name = "string",
});
example, err := aws.NewExternalIntegration(ctx, "externalIntegrationResource", &aws.ExternalIntegrationArgs{
Name: pulumi.String("string"),
})
var externalIntegrationResource = new ExternalIntegration("externalIntegrationResource", ExternalIntegrationArgs.builder()
.name("string")
.build());
external_integration_resource = signalfx.aws.ExternalIntegration("externalIntegrationResource", name="string")
const externalIntegrationResource = new signalfx.aws.ExternalIntegration("externalIntegrationResource", {name: "string"});
type: signalfx:aws:ExternalIntegration
properties:
name: string
ExternalIntegration Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The ExternalIntegration resource accepts the following input properties:
- Name string
- The name of this integration
- Name string
- The name of this integration
- name String
- The name of this integration
- name string
- The name of this integration
- name str
- The name of this integration
- name String
- The name of this integration
Outputs
All input properties are implicitly available as output properties. Additionally, the ExternalIntegration resource produces the following output properties:
- External
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - Id string
- The provider-assigned unique ID for this managed resource.
- Signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- External
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - Id string
- The provider-assigned unique ID for this managed resource.
- Signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id String - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - id String
- The provider-assigned unique ID for this managed resource.
- signalfx
Aws StringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - id string
- The provider-assigned unique ID for this managed resource.
- signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external_
id str - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - id str
- The provider-assigned unique ID for this managed resource.
- signalfx_
aws_ straccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id String - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - id String
- The provider-assigned unique ID for this managed resource.
- signalfx
Aws StringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
Look up Existing ExternalIntegration Resource
Get an existing ExternalIntegration resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ExternalIntegrationState, opts?: CustomResourceOptions): ExternalIntegration
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
external_id: Optional[str] = None,
name: Optional[str] = None,
signalfx_aws_account: Optional[str] = None) -> ExternalIntegration
func GetExternalIntegration(ctx *Context, name string, id IDInput, state *ExternalIntegrationState, opts ...ResourceOption) (*ExternalIntegration, error)
public static ExternalIntegration Get(string name, Input<string> id, ExternalIntegrationState? state, CustomResourceOptions? opts = null)
public static ExternalIntegration get(String name, Output<String> id, ExternalIntegrationState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- External
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - Name string
- The name of this integration
- Signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- External
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - Name string
- The name of this integration
- Signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id String - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - name String
- The name of this integration
- signalfx
Aws StringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id string - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - name string
- The name of this integration
- signalfx
Aws stringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external_
id str - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - name str
- The name of this integration
- signalfx_
aws_ straccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
- external
Id String - The external ID to use with your IAM role and with
signalfx.aws.Integration
. - name String
- The name of this integration
- signalfx
Aws StringAccount - The AWS Account ARN to use with your policies/roles, provided by Splunk Observability Cloud.
Package Details
- Repository
- SignalFx pulumi/pulumi-signalfx
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
signalfx
Terraform Provider.