iam.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package ecs
  2. const (
  3. ECSTaskExecutionPolicy = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
  4. ECRReadOnlyPolicy = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
  5. ActionGetSecretValue = "secretsmanager:GetSecretValue"
  6. ActionGetParameters = "ssm:GetParameters"
  7. ActionDecrypt = "kms:Decrypt"
  8. )
  9. var assumeRolePolicyDocument = PolicyDocument{
  10. Version: "2012-10-17", // https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html
  11. Statement: []PolicyStatement{
  12. {
  13. Effect: "Allow",
  14. Principal: PolicyPrincipal{
  15. Service: "ecs-tasks.amazonaws.com",
  16. },
  17. Action: []string{"sts:AssumeRole"},
  18. },
  19. },
  20. }
  21. // could alternatively depend on https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/master/cmd/clusterawsadm/api/iam/v1alpha1/types.go
  22. type PolicyDocument struct {
  23. Version string `json:",omitempty"`
  24. Statement []PolicyStatement `json:",omitempty"`
  25. }
  26. type PolicyStatement struct {
  27. Effect string `json:",omitempty"`
  28. Action []string `json:",omitempty"`
  29. Principal PolicyPrincipal `json:",omitempty"`
  30. Resource []string `json:",omitempty"`
  31. }
  32. type PolicyPrincipal struct {
  33. Service string `json:",omitempty"`
  34. }