カタログへのアクセス権限の割り当て
アカウント所有者は、ユーザーが実行するタスクに応じて特定のカタログ管理アクセス権をユーザーに割り当てます。 アクセス権を割り当てるこのプロセスを簡素化するため、アクセス・グループを使用してユーザーの集合を 1 つのエンティティーに編成できます。 このようにして、対象グループに 1 つのポリシーを一度割り当てると、その後、必要に応じてそのグループに関してユーザーを追加したり削除したりできます。
詳しくは、IBM Cloud におけるアクセスの管理を参照してください。
コンソールでのアクセス・グループのセットアップ
アクセス・グループの作成と、各グループへの特定の IAM ポリシーの割り当てについて詳しくは、以下のセクションを参照してください。
コンソールでの管理者アクセス権限
IBM Cloud カタログに対するアカウント・レベルのフィルターを設定するには、管理者アクセスが必要です。
- IBM Cloud アカウントにログインします。
- IBM Cloud コンソールで 管理 > アクセス (IAM) > アクセス・グループに移動します。
- 「作成」 をクリックします。
- グループ名として
private-catalog-admins
と入力し、 「作成」 をクリックします。 - 「アクセス権限」 > 「アクセス権限の割り当て」 をクリックします。
- サービスのリストからカタログ管理を選択します。
- ユーザーがアクセスするようにするカタログを選択します。
- 「プラットフォーム・アクセス」セクションで、 管理者 役割を選択します。
- 追加 > 割り当て をクリックします。
コンソールでのエディター・アクセス権限
プライベート・カタログの作成、プライベート・カタログ・レベルのフィルターの設定、プライベート・カタログへのソフトウェアの追加、およびソフトウェアの更新、非推奨、復元を行うには、エディター・アクセスが必要です。
- アクセス・グループ に移動して 作成 をクリックします。
- グループ名として
private-catalog-editors
と入力し、 「作成」 をクリックします。 - 「アクセス権限」 > 「アクセス権限の割り当て」 をクリックします。
- サービスのリストからカタログ管理を選択します。
- ユーザーがアクセスするようにするカタログを選択します。
- 「プラットフォーム・アクセス」セクションで、 エディター 役割を選択します。
- 追加 をクリックします。
- サービスのリストからKubernetes Serviceを選択します。
- クラスターを選択し、 管理者 役割と 管理者 役割を選択します。
- 追加 をクリックします。
- サービスのリストからSchematicsを選択します。
- 管理者 役割を選択します。
- 追加 > 割り当て をクリックします。
コンソールでのビューアー・アクセス権限
プライベート・カタログ、フィルター処理された IBM Cloud カタログ、およびフィルター設定を表示するには、ビューアー・アクセスが必要です。
- アクセス・グループ に移動して 作成 をクリックします。
- グループ名として
private-catalog-viewers
と入力し、 「作成」 をクリックします。 - 「アクセス権限」 > 「アクセス権限の割り当て」 をクリックします。
- サービスのリストからカタログ管理を選択します。
- ユーザーがアクセスするようにするカタログを選択します。
- 「プラットフォーム・アクセス」セクションで、 ビューアー 役割を選択します。
- 追加 > 割り当て をクリックします。
プライベート・カタログが割り当てられているリソース・グループに対するビューアー権限も必要です。 プライベート・カタログを作成するためのステップを実行するときに、プライベート・カタログをリソース・グループに割り当てることができます。 詳しくは、すべてのアカウント・ユーザーのための IBM Cloud カタログのカスタマイズを参照してください。
プライベート・カタログのリソース・グループに対するビューアー権限を割り当てるには、以下の手順を使用します。
- ユーザー に移動し、ユーザーを選択します。
- アクセス > アクセス権の割り当てを選択します。
- サービスのリストからすべての ID およびアクセス対応サービスを選択します。
- 選択した属性に基づいてアクセス権限のスコープを特定のリソースに設定し、プライベート・カタログのリソース・グループを選択します。
- プラットフォーム・アクセスに対して、ビューアー役割を選択します。
- 追加 > 割り当て をクリックします。
コンソールでのアクセス・グループへのユーザーの追加
アクセス・グループをセットアップした後、以下のステップを実行して、ユーザーをグループに追加します。
- ユーザー に移動して、 ユーザーの招待 をクリックします。
- ユーザーの E メール・アドレスを指定します。 1 つの招待で複数のユーザーを招待すると、すべてのユーザーに同じアクセス権限が割り当てられます。
- 以前に作成した 3 つのアクセス・グループのいずれかを選択し、 追加> 招待 とクリックします。
- 他のアクセス・グループにユーザーを追加する場合、上記の手順を繰り返します。
または、トラステッド・プロファイルをアクセス・グループに追加することで、ユーザーにアクセス権限を付与できます。 詳しくは、優れたトラステッド・プロファイル戦略とはおよびトラステッド・プロファイルの作成を参照してください。
CLI を使用したアクセス・グループのセットアップ
アクセス権限を割り当てるには、ibmcloud iam user-policy-create
コマンドを実行します。
CLI を使用した管理者アクセス権限
以下のコマンドを実行して、管理者アクセス権限を割り当てます。
ibmcloud iam user-policy-create USER_NAME --roles Administrator --service-name globalcatalog-collection
CLI を使用したエディター・アクセス権限
次のコマンドを実行して、エディター・アクセス権限を割り当てます。
ibmcloud iam user-policy-create USER_NAME --roles Editor --service-name globalcatalog-collection
CLI を使用したビューアー・アクセス権限
次のコマンドを実行して、ビューアー・アクセス権限を設定します。
ibmcloud iam user-policy-create USER_NAME --roles Viewer --service-name globalcatalog-collection
CLI を使用したアクセス・グループへのユーザーの追加
CLI を使用してアクセス・グループにユーザーを追加するには、ibmcloud iam access-group-user-add
コマンドを実行します。
ibmcloud iam access-group-user-add GROUP_NAME USER_NAME [USER_NAME2...]
例えば、以下のコマンドは、name@example.com
アクセス・グループにユーザー example_group
を追加します。
ibmcloud iam access-group-user-add example_group name@example.com
または、トラステッド・プロファイルをアクセス・グループに追加することで、ユーザーにアクセス権限を付与できます。 詳しくは、優れたトラステッド・プロファイル戦略とはおよびトラステッド・プロファイルの作成を参照してください。
API を使用したアクセス・グループのセットアップ
アクセス権限を割り当てるには、以下の例に示されているように、IAM ポリシー管理 API を呼び出します。 role_id
変数を、割り当てたい役割 (Viewer
、Editor
、またはAdministrator
)
に置き換えます。
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Editor role for SERVICE_NAME RESOURCE_NAME",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::role:Editor"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "$SERVICE_NAME"
},
{
"name": "resource",
"value": "$RESOURCE_NAME",
"operator": "stringEquals"
}
]
}
]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value(EXAMPLE_USER_ID)
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:iam::::role:Viewer")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value(exampleAccountId)
.operator("stringEquals")
.build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
.name("serviceType")
.value("service")
.operator("stringEquals")
.build();
ResourceTag policyResourceTag = new ResourceTag.Builder()
.name("project")
.value("prototype")
.operator("stringEquals")
.build();
PolicyResource policyResources = new PolicyResource.Builder()
.addAttributes(accountIdResourceAttribute)
.addAttributes(serviceNameResourceAttribute)
.addTags(policyResourceTag)
.build();
CreatePolicyOptions options = new CreatePolicyOptions.Builder()
.type("access")
.subjects(Arrays.asList(policySubjects))
.roles(Arrays.asList(policyRoles))
.resources(Arrays.asList(policyResources))
.build();
Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();
System.out.println(policy);
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: exampleUserId,
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Viewer',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceType',
value: 'service',
operator: 'stringEquals',
};
const policyResourceTag = {
name: 'project',
operator: 'stringEquals',
value: 'prototype',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceNameResourceAttribute],
tags: [policyResourceTag],
},
];
const params = {
type: 'access',
subjects: policySubjects,
roles: policyRoles,
resources: policyResources,
};
iamPolicyManagementService.createPolicy(params)
.then(res => {
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
policy_subjects = PolicySubject(
attributes=[SubjectAttribute(name='iam_id', value=example_user_id)])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:iam::::role:Viewer')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
name='serviceType', value='service')
policy_resource_tag = ResourceTag(
name='project', value='prototype')
policy_resources = PolicyResource(
attributes=[account_id_resource_attribute,
service_name_resource_attribute],
tags=[policy_resource_tag])
policy = iam_policy_management_service.create_policy(
type='access',
subjects=[policy_subjects],
roles=[policy_roles],
resources=[policy_resources]
).get_result()
print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
Name: core.StringPtr("iam_id"),
Value: &exampleUserID,
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Viewer"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr(exampleAccountID),
Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceType"),
Value: core.StringPtr("service"),
Operator: core.StringPtr("stringEquals"),
}
policyResourceTag := &iampolicymanagementv1.ResourceTag{
Name: core.StringPtr("project"),
Value: core.StringPtr("prototype"),
Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
Attributes: []iampolicymanagementv1.ResourceAttribute{
*accountIDResourceAttribute, *serviceNameResourceAttribute},
Tags: []iampolicymanagementv1.ResourceTag{*policyResourceTag},
}
options := iamPolicyManagementService.NewCreatePolicyOptions(
"access",
[]iampolicymanagementv1.PolicySubject{*policySubjects},
[]iampolicymanagementv1.PolicyRole{*policyRoles},
[]iampolicymanagementv1.PolicyResource{*policyResources},
)
policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policy, "", " ")
fmt.Println(string(b))
アクセスの予期される応答のセットアップ
{
"id": "12345678-abcd-1a2b-a1b2-1234567890ab",
"type": "access",
"description": "Viewer role access for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles": [
{
"roles_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT_ID",
"operator": "stringEquals"
},
{
"name": "serviceName",
"value": "SERVICE_NAME",
"operator": "stringEquals"
}
]
},
{
"tags": [
{
"name": "project",
"value": "moonshot",
"operator": "stringEquals"
},
{
"name": "pipeline",
"value": "test",
"operator": "stringEquals"
}
]
}
],
"href": "https://iam.cloud.ibm.com/v1/policies/12345678-abcd-1a2b-a1b2-1234567890ab",
"created_at": "2018-08-30T14:09:09.907Z",
"created_by_id": "USER_ID",
"last_modified_at": "2018-08-30T14:09:09.907Z",
"last_modified_by_id": "USER_ID",
"state": "active"
}
{
"id": "12345678-abcd-1a2b-a1b2-1234567890ab",
"type": "access",
"description": "Viewer role access for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles": [
{
"roles_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT_ID",
"operator": "stringEquals"
},
{
"name": "serviceName",
"value": "SERVICE_NAME",
"operator": "stringEquals"
}
]
},
{
"tags": [
{
"name": "project",
"value": "moonshot",
"operator": "stringEquals"
},
{
"name": "pipeline",
"value": "test",
"operator": "stringEquals"
}
]
}
],
"href": "https://iam.cloud.ibm.com/v1/policies/12345678-abcd-1a2b-a1b2-1234567890ab",
"created_at": "2018-08-30T14:09:09.907Z",
"created_by_id": "USER_ID",
"last_modified_at": "2018-08-30T14:09:09.907Z",
"last_modified_by_id": "USER_ID",
"state": "active"
}
{
"id": "12345678-abcd-1a2b-a1b2-1234567890ab",
"type": "access",
"description": "Viewer role access for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles": [
{
"roles_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT_ID",
"operator": "stringEquals"
},
{
"name": "serviceName",
"value": "SERVICE_NAME",
"operator": "stringEquals"
}
]
},
{
"tags": [
{
"name": "project",
"value": "moonshot",
"operator": "stringEquals"
},
{
"name": "pipeline",
"value": "test",
"operator": "stringEquals"
}
]
}
],
"href": "https://iam.cloud.ibm.com/v1/policies/12345678-abcd-1a2b-a1b2-1234567890ab",
"created_at": "2018-08-30T14:09:09.907Z",
"created_by_id": "USER_ID",
"last_modified_at": "2018-08-30T14:09:09.907Z",
"last_modified_by_id": "USER_ID",
"state": "active"
}
{
"id": "12345678-abcd-1a2b-a1b2-1234567890ab",
"type": "access",
"description": "Viewer role access for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles": [
{
"roles_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT_ID",
"operator": "stringEquals"
},
{
"name": "serviceName",
"value": "SERVICE_NAME",
"operator": "stringEquals"
}
]
},
{
"tags": [
{
"name": "project",
"value": "moonshot",
"operator": "stringEquals"
},
{
"name": "pipeline",
"value": "test",
"operator": "stringEquals"
}
]
}
],
"href": "https://iam.cloud.ibm.com/v1/policies/12345678-abcd-1a2b-a1b2-1234567890ab",
"created_at": "2018-08-30T14:09:09.907Z",
"created_by_id": "USER_ID",
"last_modified_at": "2018-08-30T14:09:09.907Z",
"last_modified_by_id": "USER_ID",
"state": "active"
}
{
"id": "12345678-abcd-1a2b-a1b2-1234567890ab",
"type": "access",
"description": "Viewer role access for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}
],
"roles": [
{
"roles_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT_ID",
"operator": "stringEquals"
},
{
"name": "serviceName",
"value": "SERVICE_NAME",
"operator": "stringEquals"
}
]
},
{
"tags": [
{
"name": "project",
"value": "moonshot",
"operator": "stringEquals"
},
{
"name": "pipeline",
"value": "test",
"operator": "stringEquals"
}
]
}
],
"href": "https://iam.cloud.ibm.com/v1/policies/12345678-abcd-1a2b-a1b2-1234567890ab",
"created_at": "2018-08-30T14:09:09.907Z",
"created_by_id": "USER_ID",
"last_modified_at": "2018-08-30T14:09:09.907Z",
"last_modified_by_id": "USER_ID",
"state": "active"
}
API を使用したアクセス・グループへのユーザーの追加
APIを使用してユーザーにアクセスグループを追加するには、次の例のように IAM Access Groups APIを呼び出します。
curl -X PUT -H "Authorization: {iam_token}" -H "Accept: application/json" -H "Content-Type: application/json" -d '{"members": [ {"iam_id": "IBMid-user1", "type": "user"}, {"iam_id": "iam-ServiceId-123", "type": "service"} ]}' "{base_url}/groups/{access_group_id}/members"
AddGroupMembersRequestMembersItem member1 = new AddGroupMembersRequestMembersItem.Builder()
.iamId("IBMid-user1")
.type("user")
.build();
AddGroupMembersRequestMembersItem member2 = new AddGroupMembersRequestMembersItem.Builder()
.iamId("iam-ServiceId-123")
.type("service")
.build();
AddMembersToAccessGroupOptions addMembersToAccessGroupOptions = new AddMembersToAccessGroupOptions.Builder()
.accessGroupId(testGroupId)
.addMembers(member1)
.addMembers(member2)
.build();
Response<AddGroupMembersResponse> response = service.addMembersToAccessGroup(addMembersToAccessGroupOptions).execute();
AddGroupMembersResponse addGroupMembersResponse = response.getResult();
System.out.println(addGroupMembersResponse);
const groupMember1 = {
iam_id: 'IBMid-user1',
type: 'user',
};
const groupMember2 = {
iam_id: 'iam-ServiceId-123',
type: 'service',
};
const params = {
accessGroupId: testGroupId,
members: [groupMember1, groupMember2],
};
iamAccessGroupsService.addMembersToAccessGroup(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
member1 = AddGroupMembersRequestMembersItem(
iam_id='IBMid-user1', type='user')
member2 = AddGroupMembersRequestMembersItem(
iam_id='iam-ServiceId-123', type='service')
members = [member1, member2]
add_group_members_response = iam_access_groups_service.add_members_to_access_group(
access_group_id=test_group_id,
members=members
).get_result()
print(json.dumps(add_group_members_response, indent=2))
groupMembers := []iamaccessgroupsv2.AddGroupMembersRequestMembersItem{
iamaccessgroupsv2.AddGroupMembersRequestMembersItem{
IamID: core.StringPtr("IBMid-user1"),
Type: core.StringPtr("user"),
},
iamaccessgroupsv2.AddGroupMembersRequestMembersItem{
IamID: core.StringPtr("iam-ServiceId-123"),
Type: core.StringPtr("service"),
},
}
addMembersToAccessGroupOptions := iamAccessGroupsService.NewAddMembersToAccessGroupOptions(testGroupID)
addMembersToAccessGroupOptions.SetMembers(groupMembers)
addGroupMembersResponse, response, err := iamAccessGroupsService.AddMembersToAccessGroup(addMembersToAccessGroupOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(addGroupMembersResponse, "", " ")
fmt.Println(string(b))
または、トラステッド・プロファイルをアクセス・グループに追加することで、ユーザーにアクセス権限を付与できます。 詳しくは、優れたトラステッド・プロファイル戦略とはおよびトラステッド・プロファイルの作成を参照してください。
ユーザーの予期される応答の追加
{
"members": [
{
"iam_id": "$IBM_ID",
"type": "user",
"created_at": "2019-01-01T01:01:00Z",
"created_by_id": "CREATOR_ID",
"status_code": 200
},
{
"iam_id": "$SERVICE_ID",
"status_code": 400,
"trace": "12345678-abcd-1a2b-a1b2-1234567890ab",
"errors": [
{
"code": "error_occurred",
"message": "The service id is missing or incorrect"
}
]
}
]
}
{
"members": [
{
"iam_id": "$IBM_ID",
"type": "user",
"created_at": "2019-01-01T01:01:00Z",
"created_by_id": "CREATOR_ID",
"status_code": 200
},
{
"iam_id": "$SERVICE_ID",
"status_code": 400,
"trace": "12345678-abcd-1a2b-a1b2-1234567890ab",
"errors": [
{
"code": "error_occurred",
"message": "The service id is missing or incorrect"
}
]
}
]
}
{
"members": [
{
"iam_id": "$IBM_ID",
"type": "user",
"created_at": "2019-01-01T01:01:00Z",
"created_by_id": "CREATOR_ID",
"status_code": 200
},
{
"iam_id": "$SERVICE_ID",
"status_code": 400,
"trace": "12345678-abcd-1a2b-a1b2-1234567890ab",
"errors": [
{
"code": "error_occurred",
"message": "The service id is missing or incorrect"
}
]
}
]
}
{
"members": [
{
"iam_id": "$IBM_ID",
"type": "user",
"created_at": "2019-01-01T01:01:00Z",
"created_by_id": "CREATOR_ID",
"status_code": 200
},
{
"iam_id": "$SERVICE_ID",
"status_code": 400,
"trace": "12345678-abcd-1a2b-a1b2-1234567890ab",
"errors": [
{
"code": "error_occurred",
"message": "The service id is missing or incorrect"
}
]
}
]
}
{
"members": [
{
"iam_id": "$IBM_ID",
"type": "user",
"created_at": "2019-01-01T01:01:00Z",
"created_by_id": "CREATOR_ID",
"status_code": 200
},
{
"iam_id": "$SERVICE_ID",
"status_code": 400,
"trace": "12345678-abcd-1a2b-a1b2-1234567890ab",
"errors": [
{
"code": "error_occurred",
"message": "The service id is missing or incorrect"
}
]
}
]
}
Terraform を使用したアクセス・グループへのユーザーの追加
Terraform を使用してアクセス・グループにユーザーを追加する前に、以下を完了していることを確認してください。
- Terraform CLI をインストールし、Terraform 用の IBM Cloud プロバイダー・プラグインを構成します。 詳しくは、 IBM Cloud® のチュートリアルを参照してください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
main.tf
という名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp 構成言語を使用してリソースを定義します。 詳細については 、Terraformのドキュメントを参照してください。
アクセス・グループにユーザーを追加するには、以下の手順を使用します。
-
Terraform 構成ファイルで、アクセス・グループの作成に使用した Terraform コードを見つけ、アクセス・グループに割り当てられている
access_group_id
をメモします。 -
メンバーをこのアクセス・グループに追加します。
resource "ibm_iam_access_group_members" "accgroupmem" { access_group_id = ibm_iam_access_group.accgroup.id ibm_ids = ["test@in.ibm.com"] }
詳細については 、Terraform Identity and Access Management(IAM)ページの引数リファレンスの詳細を参照してください。
-
構成ファイルの作成が完了したら、Terraform CLI を初期化します。 詳しくは、 作業ディレクトリーの初期化を参照してください。
terraform init
-
main.tf
ファイルからリソースをプロビジョンします。 詳しくは、 Terraform を使用したインフラストラクチャーのプロビジョニングを参照してください。-
terraform plan
を実行して、提案されたアクションをプレビューするための Terraform 実行プランを生成します。terraform plan
-
terraform apply
を実行して、計画に定義されているリソースを作成します。terraform apply
-