Alibaba Cloud v3.75.0 published on Friday, Mar 7, 2025 by Pulumi
alicloud.ram.getPolicies
Explore with Pulumi AI
This data source provides a list of RAM policies in an Alibaba Cloud account according to the specified filters.
NOTE: Available since v1.0.0+.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const _default = new random.index.Integer("default", {
    min: 10000,
    max: 99999,
});
const group = new alicloud.ram.Group("group", {
    name: `groupName-${_default.result}`,
    comments: "this is a group comments.",
});
const policy = new alicloud.ram.Policy("policy", {
    policyName: `tf-example-${_default.result}`,
    policyDocument: `    {
      "Statement": [
        {
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        }
      ],
        "Version": "1"
    }
`,
    description: "this is a policy test",
});
const attach = new alicloud.ram.GroupPolicyAttachment("attach", {
    policyName: policy.policyName,
    policyType: policy.type,
    groupName: group.name,
});
const policiesDs = alicloud.ram.getPoliciesOutput({
    groupName: attach.groupName,
    type: "Custom",
});
export const firstPolicyName = policiesDs.apply(policiesDs => policiesDs.policies?.[0]?.name);
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
default = random.index.Integer("default",
    min=10000,
    max=99999)
group = alicloud.ram.Group("group",
    name=f"groupName-{default['result']}",
    comments="this is a group comments.")
policy = alicloud.ram.Policy("policy",
    policy_name=f"tf-example-{default['result']}",
    policy_document="""    {
      "Statement": [
        {
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        }
      ],
        "Version": "1"
    }
""",
    description="this is a policy test")
attach = alicloud.ram.GroupPolicyAttachment("attach",
    policy_name=policy.policy_name,
    policy_type=policy.type,
    group_name=group.name)
policies_ds = alicloud.ram.get_policies_output(group_name=attach.group_name,
    type="Custom")
pulumi.export("firstPolicyName", policies_ds.policies[0].name)
package main
import (
	"fmt"
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram"
	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
			Min: 10000,
			Max: 99999,
		})
		if err != nil {
			return err
		}
		group, err := ram.NewGroup(ctx, "group", &ram.GroupArgs{
			Name:     pulumi.Sprintf("groupName-%v", _default.Result),
			Comments: pulumi.String("this is a group comments."),
		})
		if err != nil {
			return err
		}
		policy, err := ram.NewPolicy(ctx, "policy", &ram.PolicyArgs{
			PolicyName: pulumi.Sprintf("tf-example-%v", _default.Result),
			PolicyDocument: pulumi.String(`    {
      "Statement": [
        {
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        }
      ],
        "Version": "1"
    }
`),
			Description: pulumi.String("this is a policy test"),
		})
		if err != nil {
			return err
		}
		attach, err := ram.NewGroupPolicyAttachment(ctx, "attach", &ram.GroupPolicyAttachmentArgs{
			PolicyName: policy.PolicyName,
			PolicyType: policy.Type,
			GroupName:  group.Name,
		})
		if err != nil {
			return err
		}
		policiesDs := ram.GetPoliciesOutput(ctx, ram.GetPoliciesOutputArgs{
			GroupName: attach.GroupName,
			Type:      pulumi.String("Custom"),
		}, nil)
		ctx.Export("firstPolicyName", policiesDs.ApplyT(func(policiesDs ram.GetPoliciesResult) (*string, error) {
			return &policiesDs.Policies[0].Name, nil
		}).(pulumi.StringPtrOutput))
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() => 
{
    var @default = new Random.Index.Integer("default", new()
    {
        Min = 10000,
        Max = 99999,
    });
    var @group = new AliCloud.Ram.Group("group", new()
    {
        Name = $"groupName-{@default.Result}",
        Comments = "this is a group comments.",
    });
    var policy = new AliCloud.Ram.Policy("policy", new()
    {
        PolicyName = $"tf-example-{@default.Result}",
        PolicyDocument = @"    {
      ""Statement"": [
        {
          ""Action"": [
            ""oss:ListObjects"",
            ""oss:GetObject""
          ],
          ""Effect"": ""Allow"",
          ""Resource"": [
            ""acs:oss:*:*:mybucket"",
            ""acs:oss:*:*:mybucket/*""
          ]
        }
      ],
        ""Version"": ""1""
    }
",
        Description = "this is a policy test",
    });
    var attach = new AliCloud.Ram.GroupPolicyAttachment("attach", new()
    {
        PolicyName = policy.PolicyName,
        PolicyType = policy.Type,
        GroupName = @group.Name,
    });
    var policiesDs = AliCloud.Ram.GetPolicies.Invoke(new()
    {
        GroupName = attach.GroupName,
        Type = "Custom",
    });
    return new Dictionary<string, object?>
    {
        ["firstPolicyName"] = policiesDs.Apply(getPoliciesResult => getPoliciesResult.Policies[0]?.Name),
    };
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.ram.Group;
import com.pulumi.alicloud.ram.GroupArgs;
import com.pulumi.alicloud.ram.Policy;
import com.pulumi.alicloud.ram.PolicyArgs;
import com.pulumi.alicloud.ram.GroupPolicyAttachment;
import com.pulumi.alicloud.ram.GroupPolicyAttachmentArgs;
import com.pulumi.alicloud.ram.RamFunctions;
import com.pulumi.alicloud.ram.inputs.GetPoliciesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var default_ = new Integer("default", IntegerArgs.builder()
            .min(10000)
            .max(99999)
            .build());
        var group = new Group("group", GroupArgs.builder()
            .name(String.format("groupName-%s", default_.result()))
            .comments("this is a group comments.")
            .build());
        var policy = new Policy("policy", PolicyArgs.builder()
            .policyName(String.format("tf-example-%s", default_.result()))
            .policyDocument("""
    {
      "Statement": [
        {
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        }
      ],
        "Version": "1"
    }
            """)
            .description("this is a policy test")
            .build());
        var attach = new GroupPolicyAttachment("attach", GroupPolicyAttachmentArgs.builder()
            .policyName(policy.policyName())
            .policyType(policy.type())
            .groupName(group.name())
            .build());
        final var policiesDs = RamFunctions.getPolicies(GetPoliciesArgs.builder()
            .groupName(attach.groupName())
            .type("Custom")
            .build());
        ctx.export("firstPolicyName", policiesDs.applyValue(getPoliciesResult -> getPoliciesResult).applyValue(policiesDs -> policiesDs.applyValue(getPoliciesResult -> getPoliciesResult.policies()[0].name())));
    }
}
resources:
  group:
    type: alicloud:ram:Group
    properties:
      name: groupName-${default.result}
      comments: this is a group comments.
  default:
    type: random:integer
    properties:
      min: 10000
      max: 99999
  policy:
    type: alicloud:ram:Policy
    properties:
      policyName: tf-example-${default.result}
      policyDocument: |2
            {
              "Statement": [
                {
                  "Action": [
                    "oss:ListObjects",
                    "oss:GetObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    "acs:oss:*:*:mybucket",
                    "acs:oss:*:*:mybucket/*"
                  ]
                }
              ],
                "Version": "1"
            }
      description: this is a policy test
  attach:
    type: alicloud:ram:GroupPolicyAttachment
    properties:
      policyName: ${policy.policyName}
      policyType: ${policy.type}
      groupName: ${group.name}
variables:
  policiesDs:
    fn::invoke:
      function: alicloud:ram:getPolicies
      arguments:
        groupName: ${attach.groupName}
        type: Custom
outputs:
  firstPolicyName: ${policiesDs.policies[0].name}
Using getPolicies
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getPolicies(args: GetPoliciesArgs, opts?: InvokeOptions): Promise<GetPoliciesResult>
function getPoliciesOutput(args: GetPoliciesOutputArgs, opts?: InvokeOptions): Output<GetPoliciesResult>def get_policies(enable_details: Optional[bool] = None,
                 group_name: Optional[str] = None,
                 ids: Optional[Sequence[str]] = None,
                 name_regex: Optional[str] = None,
                 output_file: Optional[str] = None,
                 role_name: Optional[str] = None,
                 type: Optional[str] = None,
                 user_name: Optional[str] = None,
                 opts: Optional[InvokeOptions] = None) -> GetPoliciesResult
def get_policies_output(enable_details: Optional[pulumi.Input[bool]] = None,
                 group_name: Optional[pulumi.Input[str]] = None,
                 ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 name_regex: Optional[pulumi.Input[str]] = None,
                 output_file: Optional[pulumi.Input[str]] = None,
                 role_name: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None,
                 user_name: Optional[pulumi.Input[str]] = None,
                 opts: Optional[InvokeOptions] = None) -> Output[GetPoliciesResult]func GetPolicies(ctx *Context, args *GetPoliciesArgs, opts ...InvokeOption) (*GetPoliciesResult, error)
func GetPoliciesOutput(ctx *Context, args *GetPoliciesOutputArgs, opts ...InvokeOption) GetPoliciesResultOutput> Note: This function is named GetPolicies in the Go SDK.
public static class GetPolicies 
{
    public static Task<GetPoliciesResult> InvokeAsync(GetPoliciesArgs args, InvokeOptions? opts = null)
    public static Output<GetPoliciesResult> Invoke(GetPoliciesInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetPoliciesResult> getPolicies(GetPoliciesArgs args, InvokeOptions options)
public static Output<GetPoliciesResult> getPolicies(GetPoliciesArgs args, InvokeOptions options)
fn::invoke:
  function: alicloud:ram/getPolicies:getPolicies
  arguments:
    # arguments dictionaryThe following arguments are supported:
- EnableDetails bool
- Default to true. Set it to true can output more details.
- GroupName string
- Filter results by a specific group name. Returned policies are attached to the specified group.
- Ids List<string>
- A list of ram group IDs.
- NameRegex string
- A regex string to filter resulting policies by name.
- OutputFile string
- File name where to save data source results (after running pulumi preview).
- RoleName string
- Filter results by a specific role name. Returned policies are attached to the specified role.
- Type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- UserName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- EnableDetails bool
- Default to true. Set it to true can output more details.
- GroupName string
- Filter results by a specific group name. Returned policies are attached to the specified group.
- Ids []string
- A list of ram group IDs.
- NameRegex string
- A regex string to filter resulting policies by name.
- OutputFile string
- File name where to save data source results (after running pulumi preview).
- RoleName string
- Filter results by a specific role name. Returned policies are attached to the specified role.
- Type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- UserName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- enableDetails Boolean
- Default to true. Set it to true can output more details.
- groupName String
- Filter results by a specific group name. Returned policies are attached to the specified group.
- ids List<String>
- A list of ram group IDs.
- nameRegex String
- A regex string to filter resulting policies by name.
- outputFile String
- File name where to save data source results (after running pulumi preview).
- roleName String
- Filter results by a specific role name. Returned policies are attached to the specified role.
- type String
- Filter results by a specific policy type. Valid values are CustomandSystem.
- userName String
- Filter results by a specific user name. Returned policies are attached to the specified user.
- enableDetails boolean
- Default to true. Set it to true can output more details.
- groupName string
- Filter results by a specific group name. Returned policies are attached to the specified group.
- ids string[]
- A list of ram group IDs.
- nameRegex string
- A regex string to filter resulting policies by name.
- outputFile string
- File name where to save data source results (after running pulumi preview).
- roleName string
- Filter results by a specific role name. Returned policies are attached to the specified role.
- type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- userName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- enable_details bool
- Default to true. Set it to true can output more details.
- group_name str
- Filter results by a specific group name. Returned policies are attached to the specified group.
- ids Sequence[str]
- A list of ram group IDs.
- name_regex str
- A regex string to filter resulting policies by name.
- output_file str
- File name where to save data source results (after running pulumi preview).
- role_name str
- Filter results by a specific role name. Returned policies are attached to the specified role.
- type str
- Filter results by a specific policy type. Valid values are CustomandSystem.
- user_name str
- Filter results by a specific user name. Returned policies are attached to the specified user.
- enableDetails Boolean
- Default to true. Set it to true can output more details.
- groupName String
- Filter results by a specific group name. Returned policies are attached to the specified group.
- ids List<String>
- A list of ram group IDs.
- nameRegex String
- A regex string to filter resulting policies by name.
- outputFile String
- File name where to save data source results (after running pulumi preview).
- roleName String
- Filter results by a specific role name. Returned policies are attached to the specified role.
- type String
- Filter results by a specific policy type. Valid values are CustomandSystem.
- userName String
- Filter results by a specific user name. Returned policies are attached to the specified user.
getPolicies Result
The following output properties are available:
- Id string
- The provider-assigned unique ID for this managed resource.
- Ids List<string>
- Names List<string>
- A list of ram group names.
- Policies
List<Pulumi.Ali Cloud. Ram. Outputs. Get Policies Policy> 
- A list of policies. Each element contains the following attributes:
- EnableDetails bool
- GroupName string
- NameRegex string
- OutputFile string
- RoleName string
- Type string
- Type of the policy.
- UserName string
- The user name of policy.
- Id string
- The provider-assigned unique ID for this managed resource.
- Ids []string
- Names []string
- A list of ram group names.
- Policies
[]GetPolicies Policy 
- A list of policies. Each element contains the following attributes:
- EnableDetails bool
- GroupName string
- NameRegex string
- OutputFile string
- RoleName string
- Type string
- Type of the policy.
- UserName string
- The user name of policy.
- id String
- The provider-assigned unique ID for this managed resource.
- ids List<String>
- names List<String>
- A list of ram group names.
- policies
List<GetPolicies Policy> 
- A list of policies. Each element contains the following attributes:
- enableDetails Boolean
- groupName String
- nameRegex String
- outputFile String
- roleName String
- type String
- Type of the policy.
- userName String
- The user name of policy.
- id string
- The provider-assigned unique ID for this managed resource.
- ids string[]
- names string[]
- A list of ram group names.
- policies
GetPolicies Policy[] 
- A list of policies. Each element contains the following attributes:
- enableDetails boolean
- groupName string
- nameRegex string
- outputFile string
- roleName string
- type string
- Type of the policy.
- userName string
- The user name of policy.
- id str
- The provider-assigned unique ID for this managed resource.
- ids Sequence[str]
- names Sequence[str]
- A list of ram group names.
- policies
Sequence[GetPolicies Policy] 
- A list of policies. Each element contains the following attributes:
- enable_details bool
- group_name str
- name_regex str
- output_file str
- role_name str
- type str
- Type of the policy.
- user_name str
- The user name of policy.
- id String
- The provider-assigned unique ID for this managed resource.
- ids List<String>
- names List<String>
- A list of ram group names.
- policies List<Property Map>
- A list of policies. Each element contains the following attributes:
- enableDetails Boolean
- groupName String
- nameRegex String
- outputFile String
- roleName String
- type String
- Type of the policy.
- userName String
- The user name of policy.
Supporting Types
GetPoliciesPolicy  
- AttachmentCount int
- Attachment count of the policy.
- CreateDate string
- Creation date of the policy.
- DefaultVersion string
- Default version of the policy.
- Description string
- Description of the policy.
- Document string
- Policy document of the policy.
- Id string
- ID of the policy.
- Name string
- Name of the policy.
- PolicyDocument string
- Policy document of the policy.
- PolicyName string
- Name of the policy.
- Type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- UpdateDate string
- Update date of the policy.
- UserName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- VersionId string
- The ID of default policy.
- AttachmentCount int
- Attachment count of the policy.
- CreateDate string
- Creation date of the policy.
- DefaultVersion string
- Default version of the policy.
- Description string
- Description of the policy.
- Document string
- Policy document of the policy.
- Id string
- ID of the policy.
- Name string
- Name of the policy.
- PolicyDocument string
- Policy document of the policy.
- PolicyName string
- Name of the policy.
- Type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- UpdateDate string
- Update date of the policy.
- UserName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- VersionId string
- The ID of default policy.
- attachmentCount Integer
- Attachment count of the policy.
- createDate String
- Creation date of the policy.
- defaultVersion String
- Default version of the policy.
- description String
- Description of the policy.
- document String
- Policy document of the policy.
- id String
- ID of the policy.
- name String
- Name of the policy.
- policyDocument String
- Policy document of the policy.
- policyName String
- Name of the policy.
- type String
- Filter results by a specific policy type. Valid values are CustomandSystem.
- updateDate String
- Update date of the policy.
- userName String
- Filter results by a specific user name. Returned policies are attached to the specified user.
- versionId String
- The ID of default policy.
- attachmentCount number
- Attachment count of the policy.
- createDate string
- Creation date of the policy.
- defaultVersion string
- Default version of the policy.
- description string
- Description of the policy.
- document string
- Policy document of the policy.
- id string
- ID of the policy.
- name string
- Name of the policy.
- policyDocument string
- Policy document of the policy.
- policyName string
- Name of the policy.
- type string
- Filter results by a specific policy type. Valid values are CustomandSystem.
- updateDate string
- Update date of the policy.
- userName string
- Filter results by a specific user name. Returned policies are attached to the specified user.
- versionId string
- The ID of default policy.
- attachment_count int
- Attachment count of the policy.
- create_date str
- Creation date of the policy.
- default_version str
- Default version of the policy.
- description str
- Description of the policy.
- document str
- Policy document of the policy.
- id str
- ID of the policy.
- name str
- Name of the policy.
- policy_document str
- Policy document of the policy.
- policy_name str
- Name of the policy.
- type str
- Filter results by a specific policy type. Valid values are CustomandSystem.
- update_date str
- Update date of the policy.
- user_name str
- Filter results by a specific user name. Returned policies are attached to the specified user.
- version_id str
- The ID of default policy.
- attachmentCount Number
- Attachment count of the policy.
- createDate String
- Creation date of the policy.
- defaultVersion String
- Default version of the policy.
- description String
- Description of the policy.
- document String
- Policy document of the policy.
- id String
- ID of the policy.
- name String
- Name of the policy.
- policyDocument String
- Policy document of the policy.
- policyName String
- Name of the policy.
- type String
- Filter results by a specific policy type. Valid values are CustomandSystem.
- updateDate String
- Update date of the policy.
- userName String
- Filter results by a specific user name. Returned policies are attached to the specified user.
- versionId String
- The ID of default policy.
Package Details
- Repository
- Alibaba Cloud pulumi/pulumi-alicloud
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the alicloudTerraform Provider.