Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 66 additions & 36 deletions examples/tencentcloud-cam/main.tf
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
terraform {
required_providers {
tencentcloud = {
source = "tencentcloudstack/tencentcloud"
}
}
}
provider "tencentcloud" {
region = "ap-guangzhou"
}

data "tencentcloud_cam_users" "users" {
name = tencentcloud_cam_user.example.id
}

data "tencentcloud_cam_roles" "roles" {
role_id = tencentcloud_cam_role.example.id
}

data "tencentcloud_cam_policies" "policies" {
policy_id = tencentcloud_cam_policy.example.id
}

data "tencentcloud_cam_groups" "groups" {
group_id = tencentcloud_cam_group.example.id
}

data "tencentcloud_cam_group_memberships" "memberships" {
group_id = tencentcloud_cam_group_membership.example.id
}

data "tencentcloud_cam_user_policy_attachments" "user_policy_attachments" {
user_name = tencentcloud_cam_user_policy_attachment.example.user_name
}

data "tencentcloud_cam_role_policy_attachments" "role_policy_attachments" {
role_id = tencentcloud_cam_role_policy_attachment.example.role_id
}

data "tencentcloud_cam_group_policy_attachments" "group_policy_attachments" {
group_id = tencentcloud_cam_group_policy_attachment.example.group_id
}

data "tencentcloud_cam_saml_providers" "saml_providers" {
name = tencentcloud_cam_saml_provider.example.id
}

resource "tencentcloud_cam_group" "example" {
name = "example"
remark = "example"
Expand All @@ -23,7 +70,25 @@ resource "tencentcloud_cam_policy" "example" {

resource "tencentcloud_cam_role" "example" {
name = "example"
document = var.role_document
document =<<EOF
{
"version": "2.0",
"statement": [
{
"action": [
"name/sts:AssumeRole"
],
"effect": "allow",
"principal": {
"qcs": [
"qcs::cam::uin/${local.uin}:uin/${local.uin}"
]
}
}
]
}
EOF

description = "test"
console_login = true
}
Expand Down Expand Up @@ -54,38 +119,3 @@ resource "tencentcloud_cam_saml_provider" "example" {
description = "test"
}

data "tencentcloud_cam_users" "users" {
name = tencentcloud_cam_user.example.id
}

data "tencentcloud_cam_roles" "roles" {
role_id = tencentcloud_cam_role.example.id
}

data "tencentcloud_cam_policies" "policies" {
policy_id = tencentcloud_cam_policy.example.id
}

data "tencentcloud_cam_groups" "groups" {
group_id = tencentcloud_cam_group.example.id
}

data "tencentcloud_cam_group_memberships" "memberships" {
group_id = tencentcloud_cam_group_membership.example.id
}

data "tencentcloud_cam_user_policy_attachments" "user_policy_attachments" {
user_name = tencentcloud_cam_user_policy_attachment.example.user_name
}

data "tencentcloud_cam_role_policy_attachments" "role_policy_attachments" {
role_id = tencentcloud_cam_role_policy_attachment.example.role_id
}

data "tencentcloud_cam_group_policy_attachments" "group_policy_attachments" {
group_id = tencentcloud_cam_group_policy_attachment.example.group_id
}

data "tencentcloud_cam_saml_providers" "saml_providers" {
name = tencentcloud_cam_saml_provider.example.id
}
5 changes: 5 additions & 0 deletions examples/tencentcloud-cam/user-info.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
locals {
uin = data.tencentcloud_user_info.info.uin
}

data "tencentcloud_user_info" "info" {}
21 changes: 0 additions & 21 deletions examples/tencentcloud-cam/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,6 @@ variable "policy_document" {
EOF
}

variable "role_document" {
default = <<EOF
{
"version": "2.0",
"statement": [
{
"action": [
"name/sts:AssumeRole"
],
"effect": "allow",
"principal": {
"qcs": [
"qcs::cam::uin/100009461222:uin/100009461222"
]
}
}
]
}
EOF
}

variable "meta_data" {
default = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL3d3dy5va3RhLmNvbS9leGsxa3F4bWNqUW1HQURNeTM1NyIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEb0RDQ0FvaWdBd0lCQWdJR0FXM0lTcExvTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUdRTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHDQpBMVVFQ0F3S1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ3d05VMkZ1SUVaeVlXNWphWE5qYnpFTk1Bc0dBMVVFQ2d3RVQydDBZVEVVDQpNQklHQTFVRUN3d0xVMU5QVUhKdmRtbGtaWEl4RVRBUEJnTlZCQU1NQ0dsa2VIVmxkblJoTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzFwDQpibVp2UUc5cmRHRXVZMjl0TUI0WERURTVNVEF4TkRBek1qSXhNMW9YRFRJNU1UQXhOREF6TWpNeE0xb3dnWkF4Q3pBSkJnTlZCQVlUDQpBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSERBMVRZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFLDQpEQVJQYTNSaE1SUXdFZ1lEVlFRTERBdFRVMDlRY205MmFXUmxjakVSTUE4R0ExVUVBd3dJYVdSNGRXVjJkR0V4SERBYUJna3Foa2lHDQo5dzBCQ1FFV0RXbHVabTlBYjJ0MFlTNWpiMjB3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ2g4b3dqDQpZK2dQSUM3blQvNTduLzdmeXJzcDlHMXdxa2UxdXhjMHVrTndnQXozOVNpelY3QVhLMWRReTFLaThXWjJJMzFEczJkT0FNQ1FKR2pWDQpUWWNNbnA3KzhqUzNLdmxNUkRJamk5cmxuUi9vcnBvMll1RHVWby9jVzdidlRIS2h2REo1QWZRaWxzYlNPTXdUOWM2TVlYZGhBNVBwDQpzelFsK1UrdHJmcXUrdUorSER4SVQxdlhWaVI5YlY2SUFRSzZpbWZoc2wxWmVSUytjbVFVNEpjQWlYT0xtTnFVVWM2UkpxUzhrMW1mDQpBLzhmb2VyMGc3SG4xZDVXclpCc2gyUlR2Vzh1ZVdadHQ3dmh4QTlGdE5kSVlEcXJ0eElmMlZXcXhrSHM3WFZDSm5wTnJITVovT1BRDQpGY21YSGVxNlJJMlB3Q1RlOW8zZHZpM0hqeXBaOEl4dkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFHaHk1bG9nbGtTDQoyVHg2YS90MnF5VEx0YVV5cEwrNGhySGJoMVAweVVMc0NrSnFsM2wrWG9VZDZCY2FJaFNSVGFPQk95ODViL0UzelJ4K3JzQXJwTjVVDQp5ZThuUEM4a05PYW5vTk9wWnZvYmhpTzFlMFIvYmxEcnRBL0o5UlBwMWtmdlhmS2NSTTU3TlRCWXppTURlbnFQUTRFOWN1U2lGdFFxDQpJYmpIbThaM1B1YXgwRitldkZ3U1pJMDNCWXNISGw1d1EraEJBS3hTdTJINEZRdU93Zmpnb2EveEN6Z1NKYjJ2UXdEc1MxMk9mSkNiDQpSRm1ZL1VYZXQramFhdEVORktLZStZSUJpU0J2WG1adTN0MHN5NDZTNzlPVzBacXJ0NUh2bElsT2lpTFpaN1FZamxjM1kxeG1LZ1luDQpXM2M2WGZkdmhGWHo0ZDdkbWYvTUdpNGY0enM9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQ8L21kOk5hbWVJREZvcm1hdD48bWQ6TmFtZUlERm9ybWF0PnVybjpvYXNpczpuYW1lczp0YzpTQU1MOjEuMTpuYW1laWQtZm9ybWF0OmVtYWlsQWRkcmVzczwvbWQ6TmFtZUlERm9ybWF0PjxtZDpTaW5nbGVTaWduT25TZXJ2aWNlIEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1QiIExvY2F0aW9uPSJodHRwczovL2lkeHVldnRhLm9rdGEuY29tL2FwcC9pZHh1ZW9yZzYzNzM1OF90ZXN0XzEvZXhrMWtxeG1jalFtR0FETXkzNTcvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHBzOi8vaWR4dWV2dGEub2t0YS5jb20vYXBwL2lkeHVlb3JnNjM3MzU4X3Rlc3RfMS9leGsxa3F4bWNqUW1HQURNeTM1Ny9zc28vc2FtbCIvPjwvbWQ6SURQU1NPRGVzY3JpcHRvcj48L21kOkVudGl0eURlc2NyaXB0b3I+"
}
3 changes: 3 additions & 0 deletions tencentcloud/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,11 @@ Cloud Access Management(CAM)

Resource
tencentcloud_cam_role
tencentcloud_cam_role_by_name
tencentcloud_cam_role_policy_attachment
tencentcloud_cam_role_policy_attachment_by_name
tencentcloud_cam_policy
tencentcloud_cam_policy_by_name
tencentcloud_cam_user
tencentcloud_cam_user_policy_attachment
tencentcloud_cam_group
Expand Down
4 changes: 2 additions & 2 deletions tencentcloud/resource_tc_cam_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Example Usage

```hcl
resource "tencentcloud_cam_group" "foo" {
name = "cam-group-test"
remark = "test"
name = "tf_cam_group"
remark = "tf_group_remark"
}
```

Expand Down
29 changes: 26 additions & 3 deletions tencentcloud/resource_tc_cam_group_membership.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,33 @@ Provides a resource to create a CAM group membership.
Example Usage

```hcl
resource "tencentcloud_cam_group_membership" "foo" {
group_id = tencentcloud_cam_group.foo.id
user_names = [tencentcloud_cam_user.foo.name, tencentcloud_cam_user.bar.name]
variable "cam_group_basic" {
default = "keep-cam-group"
}

data "tencentcloud_cam_groups" "groups" {
name = var.cam_group_basic
}

resource "tencentcloud_cam_user" "foo" {
name = "tf_cam_user"
remark = "tf_user_remark"
console_login = true
use_api = true
need_reset_password = true
password = "Gail@1234"
phone_num = "12345678910"
country_code = "86"
email = "1234@qq.com"
force_delete = true
}


resource "tencentcloud_cam_group_membership" "group_membership_basic" {
group_id = data.tencentcloud_cam_groups.groups.group_list.0.group_id
user_names = [tencentcloud_cam_user.foo.id]
}

```

Import
Expand Down
22 changes: 19 additions & 3 deletions tencentcloud/resource_tc_cam_group_policy_attachment.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,25 @@ Provides a resource to create a CAM group policy attachment.
Example Usage

```hcl
resource "tencentcloud_cam_group_policy_attachment" "foo" {
group_id = tencentcloud_cam_group.foo.id
policy_id = tencentcloud_cam_policy.foo.id
variable "cam_policy_basic" {
default = "keep-cam-policy"
}

variable "cam_group_basic" {
default = "keep-cam-group"
}

data "tencentcloud_cam_groups" "groups" {
name = var.cam_group_basic
}

data "tencentcloud_cam_policies" "policy" {
name = var.cam_policy_basic
}

resource "tencentcloud_cam_group_policy_attachment" "group_policy_attachment_basic" {
group_id = data.tencentcloud_cam_groups.groups.group_list.0.group_id
policy_id = data.tencentcloud_cam_policies.policy.policy_list.0.policy_id
}
```

Expand Down
4 changes: 2 additions & 2 deletions tencentcloud/resource_tc_cam_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Example Usage

```hcl
resource "tencentcloud_cam_policy" "foo" {
name = "cam-policy-test"
name = "tf_cam_policy"
document = <<EOF
{
"version": "2.0",
Expand All @@ -22,7 +22,7 @@ resource "tencentcloud_cam_policy" "foo" {
]
}
EOF
description = "test"
description = "tf_test"
}
```

Expand Down
4 changes: 2 additions & 2 deletions tencentcloud/resource_tc_cam_policy_by_name.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Example Usage

```hcl
resource "tencentcloud_cam_policy_by_name" "foo" {
name = "cam-policy-test"
name = "tf_cam_policy_name"
document = <<EOF
{
"version": "2.0",
Expand All @@ -22,7 +22,7 @@ resource "tencentcloud_cam_policy_by_name" "foo" {
]
}
EOF
description = "test"
description = "tf_test"
}
```

Expand Down
37 changes: 31 additions & 6 deletions tencentcloud/resource_tc_cam_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,27 @@ Example Usage
Create normally

```hcl
locals {
uin = data.tencentcloud_user_info.info.uin
}

data "tencentcloud_user_info" "info" {}

resource "tencentcloud_cam_role" "foo" {
name = "cam-role-test"
document = <<EOF
{
"version": "2.0",
"statement": [
{
"action": ["name/sts:AssumeRole"],
"action": [
"name/sts:AssumeRole"
],
"effect": "allow",
"principal": {
"qcs": ["qcs::cam::uin/<your-account-id>:uin/<your-account-id>"]
"qcs": [
"qcs::cam::uin/${local.uin}:uin/${local.uin}"
]
}
}
]
Expand All @@ -33,23 +43,38 @@ EOF
Create with SAML provider

```hcl
variable "saml-provider" {
default = "example"
}

locals {
uin = data.tencentcloud_user_info.info.uin
saml_provider = var.saml-provider
}

data "tencentcloud_user_info" "info" {}

resource "tencentcloud_cam_role" "boo" {
name = "cam-role-test"
name = "tf_cam_role"
document = <<EOF
{
"version": "2.0",
"statement": [
{
"action": ["name/sts:AssumeRole", "name/sts:AssumeRoleWithWebIdentity"],
"action": [
"name/sts:AssumeRole"
],
"effect": "allow",
"principal": {
"federated": ["qcs::cam::uin/<your-account-id>:saml-provider/<your-name>"]
"qcs": [
"qcs::cam::uin/${local.uin}:saml-provider/${local.saml_provider}"
]
}
}
]
}
EOF
description = "test"
description = "tf_test"
console_login = true
}
```
Expand Down
2 changes: 1 addition & 1 deletion tencentcloud/resource_tc_cam_role_by_name.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Create normally

```hcl
resource "tencentcloud_cam_role_by_name" "foo" {
name = "cam-role-test"
name = "tf_cam_role"
document = <<EOF
{
"version": "2.0",
Expand Down
22 changes: 19 additions & 3 deletions tencentcloud/resource_tc_cam_role_policy_attachment.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,25 @@ Provides a resource to create a CAM role policy attachment.
Example Usage

```hcl
resource "tencentcloud_cam_role_policy_attachment" "foo" {
role_id = tencentcloud_cam_role.foo.id
policy_id = tencentcloud_cam_policy.foo.id
variable "cam_policy_basic" {
default = "keep-cam-policy"
}

variable "cam_role_basic" {
default = "keep-cam-role"
}

data "tencentcloud_cam_policies" "policy" {
name = var.cam_policy_basic
}

data "tencentcloud_cam_roles" "roles" {
name = var.cam_role_basic
}

resource "tencentcloud_cam_role_policy_attachment" "role_policy_attachment_basic" {
role_id = data.tencentcloud_cam_roles.roles.role_list.0.role_id
policy_id = data.tencentcloud_cam_policies.policy.policy_list.0.policy_id
}
```

Expand Down
Loading