IBM® Event Streams for IBM Cloud® IBM Cloud Logs 액세스를 부여하는 S2S 권한 부여 생성
IBM Cloud® Identity and Access Management(IAM)을 사용하여 IBM Cloud Logs 서비스에 대한 액세스 권한을 부여하는 권한을 만듭니다.
시작하기 전에
-
서비스 간 액세스 권한을 부여하기 위한 권한 관리 에 대해 자세히 알아보세요.
-
서비스 간 인증을 관리하려면 대상 서비스에 대한 액세스 권한이 있어야 합니다. 자세한 내용은 인증 관리 권한 를 참조하세요.
-
대상 서비스는 항상 권한이 생성된 계정에 있습니다.
-
IBM Cloud Logs 서비스에 대해 정의하는 권한 부여에는 IBM® Event Streams for IBM Cloud® 대상에 대한
Administrator역할이 있어야 합니다.
서비스 액세스 역할
Writer 에게 IBM® Event Streams for IBM Cloud® 와의 소스 통합을 처리할 수 있는 권한을 부여해야 합니다.
콘솔을 통해 인증 생성하기
다음 단계를 완료하십시오.
-
IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 권한을 선택하십시오.
-
작성을 클릭하십시오.
-
다음 중 하나를 수행하여 소스 계정을 선택합니다.
-
대상 서비스에 대한 액세스 권한이 필요한 소스 서비스가 이 계정에 있는 경우에는 이 계정을 선택하십시오.
-
대상 서비스에 대한 액세스 권한이 필요한 소스 서비스가 다른 계정에 있는 경우에는 다른 계정을 선택하십시오. 그런 다음 소스 계정의 계정 ID를 입력하십시오.
-
-
Cloud Logs을 소스 서비스로 선택합니다. 그런 다음 다음 중 하나를 수행하여 액세스 범위를 설정합니다.-
계정의 모든 인스턴스에 대한 액세스 권한을 부여하려면 모든 리소스를 선택합니다.
-
소스 서비스 인스턴스를 선택하여 1개의 IBM Cloud Logs 인스턴스에 대한 액세스 권한을 부여합니다.
-
-
Event Streams 를 대상 서비스로 선택합니다. 그런 다음 다음 중 하나를 수행하여 액세스 범위를 설정합니다.
-
계정의 모든 IBM® Event Streams for IBM Cloud® 인스턴스 및 리소스에 대한 액세스 권한을 부여하려면 모든 리소스를 선택합니다.
-
특정 인스턴스에 대한 액세스 권한을 부여하려면 선택한 속성에 따른 리소스 > 서비스 인스턴스를 구성하여 단일 인스턴스를 선택합니다.
-
-
서비스 액세스 섹션에서 대상 서비스에 액세스하는 소스 서비스에 액세스 권한을 할당할 역할을 선택합니다.
작성자를 선택하여 IBM® Event Streams for IBM Cloud®로 스트리밍을 승인합니다.
정책 및 권한 부여를 만들 수 있는 IAM 권한이 있는 경우 대상 서비스의 사용자로서 보유한 액세스 수준만 부여할 수 있습니다. 예를 들어 대상 서비스에 대한 뷰어 액세스 권한이 있는 경우 권한 부여를 위해 뷰어 역할만 할당할 수 있습니다. 관리자 등의 상위 권한을 할당하려고 하면 권한이 부여된 것처럼 보일 수 있지만 대상 서비스에 대한 가장 높은 수준의 권한, 즉 보기 권한만 할당됩니다.
-
권한 부여를 클릭하십시오.
다른 계정에 있는 서비스와 현재 계정에 있는 대상 서비스 간에 권한 부여를 작성하는 경우에는 대상 리소스에 대한 액세스 권한만 있으면 됩니다. 소스 계정에 대해서는 계정 번호만 있으면 됩니다.
CLI를 사용하여 권한 작성
다음 명령을 실행하여 IBM Cloud Logs 서비스에 대한 권한을 생성합니다.
ibmcloud iam authorization-policy-create logs messagehub "Writer" [--source-service-instance-name SOURCE_SERVICE_INSTANCE_NAME | --source-service-instance-id SOURCE_SERVICE_INSTANCE_ID] [--target-service-instance-name TARGET_SERVICE_INSTANCE_NAME | --target-service-instance-id TARGET_SERVICE_INSTANCE_ID]
이 명령에 사용할 수 있는 모든 매개변수에 대한 자세한 정보는 ibmcloud iam authorization-policy-create를 참조하십시오.
Terraform을 사용하여 권한 부여 작성
Terraform을 사용하여 인증을 만들려면 먼저 다음 사항을 완료해야 합니다:
- Terraform CLI를 설치하고 IBM Cloud 제공자 플러그인을 구성합니다. 자세한 내용은 IBM Cloud 에서 테라폼 시작하기 튜토리얼을 참조하세요. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.
- 이름이
main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서는 HashiCorp 구성 언어를 사용하여 리소스를 정의합니다. 자세한 내용은 테라폼 문서를 참조하세요.
테라폼을 사용하여 인증을 만들려면 다음 단계를 따르세요:
-
ibm_iam_authorization_policy파일에main.tf리소스 인수를 사용하여 서비스 간의 권한 부여 정책을 만듭니다.다음 예는 두 서비스 간에 인증을 생성하는 예제입니다:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "logs" target_service_name = "messagehub" roles = ["Writer"] description = "Authorization Policy" transaction_id = "terraformAuthorizationPolicy" }다음 예는 두 개의 특정 서비스 인스턴스 간에 권한을 생성하는 예제입니다:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "logs" source_resource_instance_id = ibm_resource_instance.instance1.guid target_service_name = "messagehub" target_resource_instance_id = ibm_resource_instance.instance2.guid roles = ["Writer"] }ibm_iam_authorization_policy리소스에는 소스 서비스, 대상 서비스 및 역할이 필요합니다. 소스 서비스에는 대상 서비스에 대한 액세스 권한이 부여되며 역할은 액세스 권한이 허용하는 권한 수준입니다. 선택 사항으로 인증에 대한 설명과 트랜잭션 ID를 추가할 수 있습니다.-
IBM® Event Streams for IBM Cloud® 대상 인스턴스의 범위를 지정하려면
target_resource_instance_id을 제공할 수 있습니다. -
더 많은 예제는 인증 리소스에 대한 Terraform 문서를 참조하세요.
-
-
구성 파일 빌드를 완료한 후 Terraform CLI를 초기화합니다. 자세한 내용은 작업 디렉터리 초기화하기를 참조하세요.
terraform init -
main.tf파일에서 리소스를 프로비저닝합니다. 자세한 내용은 테라폼으로 인프라 프로비저닝하기를 참조하세요.-
terraform plan을 실행하여 테라폼 실행 계획을 생성하면 제안된 작업을 미리 볼 수 있습니다.terraform plan -
terraform apply을 실행하여 플랜에 정의된 리소스를 만듭니다.terraform apply
-
API를 사용하여 권한 작성
대상 서비스에 대한 소스 서비스 액세스의 권한을 부여하려면 IAM 정책 관리 API를 사용하십시오. event-notifications 대상에 대해 type=authorization 을 지정하여 정책 메서드를 만들려면 다음 API 예제를 참조하세요.
정책 작성 정책에 대한 지원되는 속성은 각 서비스에서 지원하는 항목에 따라 달라집니다. 각 서비스에 대해 지원되는 속성에 대한 자세한 정보는 사용 중인 서비스에 대한 문서를 참조하십시오.
curl --request POST \
--url https://iam.cloud.ibm.com/v1/policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "<account-id>"
},
{
"name": "serviceName",
"value": "logs"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:event-notifications::::serviceRole:Reader"
}
],
"resources": [
{
"attributes": [
{
"name": "serviceName",
"value": "messagehub"
}
]
}
]
}'