IAM 신임 정보 엔진 구성하기
IAM 인증 정보 엔진을 구성하여 IBM Cloud® Secrets Manager 서비스 인스턴스에 대한 IAM 인증 정보를 설정할 수 있습니다.
Secrets Manager에서 IAM 신임 정보 엔진은 iam_credentials 시크릿 유형의 백엔드 역할을 합니다. IAM 신임 정보를 작성하기 전에 서비스 인스턴스에 대한 IAM 신임 정보 엔진을 구성해야 합니다. IAM 서비스 권한 부여 를 만들거나 IBM Cloud 계정의 서비스 ID와 연결된 API 키 를 입력하여 인스턴스를 사용 설정할 수 있습니다.
엔진 구성에 API 키를 사용할 때 생성되는 액세스 토큰은 60분 동안 지속되며, IAM에서 API 키가 삭제되더라도 계속 작동합니다. 이는 IAM 설정에서 토큰 만기를 변경하여 수정할 수 있습니다. 자세히 알아보십시오. API키와 관련된 엔티티가 삭제되면 토큰은 즉시 무효화됩니다.
엔진 구성에 IAM 서비스 인증을 사용하는 경우 Secrets Manager 인스턴스와 동일한 IBM Cloud 계정뿐만 아니라 다른 계정에서도 IAM 자격 증명 비밀을 만들고 관리할 수 있습니다. API 키 구성은 Secrets Manager 인스턴스가 속한 계정에서만 작동합니다.
시작하기 전에
IAM 자격 증명 엔진을 구성하려면 관리자 서비스 역할 이 Secrets Manager 인스턴스에 할당되어 있는지 확인합니다.
API 키를 사용하여 IAM 자격 증명 엔진을 구성하는 경우 다음 액세스 권한이 있는 서비스 ID API 키 가 필요합니다:
- IAM 액세스 그룹 서비스의 편집자 플랫폼 역할.
- IAM ID 서비스의 운영자 플랫폼 역할 .
- IAM Identity Service의 서비스 ID 작성자 서비스 역할. 서비스 ID 작성자 서비스 역할은 IAM 설정에서 서비스 ID 작성을 사용 안함으로 설정한 경우에만 필요합니다.
IAM 서비스 인증을 통해 IAM 자격 증명 엔진을 구성하는 경우, Secrets Manager 가 사용자를 대신하여 다음 두 가지 인증 정책을 추가합니다.
- 그룹 서비스 구성원 관리 플랫폼 역할 에서 IAM 액세스 그룹 서비스 서비스를 클릭합니다.
- 운영자 플랫폼 역할 에 대한 IAM Identity Service 서비스입니다.
- IAM Identity Service의 서비스 ID 작성자 서비스 역할. 서비스 ID 작성자 서비스 역할은 IAM 설정에서 서비스 ID 작성을 사용 안함으로 설정한 경우에만 필요합니다.
IAM 자격 증명을 생성하려는 계정이 특정 IP 주소에서 액세스를 허용하는 경우 Secrets Manager 에서 들어오는 요청을 허용하도록 계정의 IP 주소 설정도 업데이트해야 합니다. 자세한 정보는 컨텍스트 기반 제한사항으로 액세스 관리 를 참조하십시오.
UI에서 IAM 신임 정보 엔진 설정하기
IAM 서비스 권한 부여 사용
IAM 서비스 인증을 사용하여 IAM 자격 증명 엔진을 구성하려면 다음 단계를 완료하세요.
Secrets Manager 인스턴스와 동일한 IBM Cloud 계정에서 IAM 자격 증명을 관리하려면:
- 시크릿 엔진 페이지에서 IAM 인증 정보 탭을 클릭하십시오.
- 권한 부여를 클릭하십시오.
- 구성을 클릭하십시오.
다른 IBM Cloud 계정에서 IAM 자격 증명을 관리하려면 IAM 서비스 인증을 수동으로 생성하십시오.
IAM Identity Service 서비스 권한 부여 정책의 경우:
- IAM 자격 증명을 관리하려는 계정에서 관리 > 액세스(IAM) 로 이동합니다.
- 왼쪽 창 메뉴에서 인증를 선택합니다.
- 작성을 클릭하십시오.
- 소스에서 특정 계정를 선택하고 Secrets Manager 인스턴스가 속해 있는 계정 ID를 입력합니다.
- 서비스: Secrets Manager.
- 리소스: 특정 리소스 > 서비스 인스턴스로 이동하여 Secrets Manager 인스턴스의 서비스 인스턴스 ID를 입력합니다.
- Target에서 다음을 선택합니다
- 서비스: IAM Identity Service
- 리소스: 전체
- 역할 운영자
IAM 액세스 그룹 서비스 서비스 권한 부여 정책에 대해 설명합니다:
- IAM 자격 증명을 관리하려는 계정에서 관리 > 액세스(IAM) 로 이동합니다.
- 왼쪽 창 메뉴에서 인증를 선택합니다.
- 작성을 클릭하십시오.
- 소스에서 특정 계정를 선택하고 Secrets Manager 인스턴스가 속해 있는 계정 ID를 입력합니다.
- 서비스: Secrets Manager.
- 리소스: 특정 리소스 > 서비스 인스턴스로 이동하여 Secrets Manager 인스턴스의 서비스 인스턴스 ID를 입력합니다.
- Target에서 다음을 선택합니다
- 서비스: IAM 액세스 그룹 서비스
- 리소스: 전체
- 역할 그룹 서비스 회원 관리
API 키 사용
다음 단계를 완료하여 서비스 ID의 API 키를 사용하여 IAM 자격 증명 엔진을 구성합니다.
- 시크릿 엔진 페이지에서 IAM 인증 정보 탭을 클릭하십시오.
- API 키로 IAM 자격 증명 엔진 구성을 클릭합니다.
- 계정의 다른 API 키를 작성하고 관리할 수 있는 액세스 권한이 있는 API 키를 입력합니다.
- 구성을 클릭하십시오.
CLI에서 IAM 신임 정보 엔진 설정하기
IAM 서비스 권한 부여 사용
다음 단계를 완료하여 IAM 서비스 인증을 사용하여 IAM 자격 증명 엔진을 구성합니다.
Secrets Manager 인스턴스와 동일한 IBM Cloud 계정에서 IAM 자격 증명을 관리하려면 다음 명령을 실행하여 필요한 IAM 서비스 권한 부여 정책을 추가하십시오
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID
- SOURCE_SERVICE_INSTANCE_GUID 를 Secrets Manager 인스턴스 서비스 ID로 바꿉니다. 제공하지 않으면 권한 부여는 모든 Secrets Manager 인스턴스에 적용됩니다
다른 IBM Cloud 계정에서 IAM 자격 증명을 관리하려면: ACCOUNT_GUID 매개 변수도 포함하십시오.
- 관리하려는 서비스 ID로 IBM Cloud 계정에 로그인합니다.
- 다음 명령을 실행하여 필요한 IAM 서비스 권한 부여 정책을 추가합니다:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID --source-service-account ACCOUNT_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID --source-service-instance-id ACCOUNT_GUID
- SOURCE_SERVICE_INSTANCE_GUID 를 Secrets Manager 인스턴스 서비스 ID로 바꿉니다. 제공하지 않으면 권한 부여는 모든 Secrets Manager 인스턴스에 적용됩니다
- ACCOUNT_GUID 를 IAM 자격증명 비밀을 만들려는 IBM Cloud 계정의 ID로 바꿉니다.
API 키 사용
다음 단계를 완료하여 서비스 ID의 API 키를 사용하여 IAM 자격 증명 엔진을 구성합니다.
-
터미널 창에서 IBM Cloud CLI를 통해 IBM Cloud에 로그인하십시오.
ibmcloud login -
Secrets Manager 서비스 인스턴스가 있는 계정, 지역 및 리소스 그룹을 선택하십시오.
-
서비스 ID를 만들고 환경 변수로 설정하십시오.
export SERVICE_ID=`ibmcloud iam service-id-create <service_ID_name> --description "<description>" --output json | jq -r ".id"`; echo $SERVICE_ID -
서비스 ID에 대한 액세스를 관리하십시오.
다른 서비스 ID를 작성하고 관리하려면 서비스 ID 권한을 지정하십시오.
ibmcloud iam service-policy-create $SERVICE_ID --roles Operator --service-name "iam-identity"계정의 액세스 그룹을 보고 업데이트하려면 서비스 ID 권한을 지정하십시오.
ibmcloud iam access-group-policy-create $SERVICE_ID --roles Editor --service-name "iam-groups"계정의 액세스 그룹에 서비스 ID를 추가하십시오.
ibmcloud iam access-group-service-id-add <access_group_name> $SERVICE_ID서비스 ID에 대한 IBM Cloud API 키를 작성하십시오.
export IBM_CLOUD_API_KEY=`ibmcloud iam service-api-key-create <API_key_name> $SERVICE_ID --description "<description>" --output json | jq -r ".apikey"` -
API 키를 사용하여 인스턴스에 대한 IAM 자격 증명 엔진을 구성합니다.
IBM Cloud CLI에서 시크릿 엔진을 구성하려면 다음
ibmcloud secrets-manager configuration-create명령을 실행합니다.ibmcloud secrets-manager configuration-create --configuration-prototype='{"config_type": "iam_credentials_configuration","name": "iam-configuration","api_key": "'$IBM_CLOUD_API_KEY'"}'Windows™ 명령 프롬프트(
cmd.exe) 또는 PowerShell을 사용하십니까? 명령행에서 JSON 컨텐츠를 전달할 때 오류가 발생하면 운영 체제에 특정한 따옴표 이스케이프 요구사항에 맞게 문자열을 조정해야 할 수 있습니다. 자세한 정보는 IBM Cloud CLI에서 문자열과 함께 따옴표 사용을 참조하십시오.
API로 IAM 자격 증명 엔진 구성하기
올바른 액세스 레벨로 IBM Cloud API 키를 작성하는 단계별 지침을 보려면 UI 또는 CLI 단계로 전환하십시오.
IAM 서비스 권한 부여 사용
다음 예는 IAM 서비스 인증을 사용할 때 인스턴스에 대한 IAM 자격 증명 엔진을 구성하는 데 사용할 수 있는 쿼리를 보여 줍니다. IBM Cloud IAM의 API 문서 에서 자세히 알아보세요.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-identity::::serviceRole:ServiceIdCreator"
},
{
"role_id": "crn:v1:bluemix:public:iam::::role:Operator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$TARGET_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "iam-identity"
}
]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-groups::::serviceRole:MemberManage"
}
],
"resources":[
{
"attributes": [
{
"name":"$TARGET_ACCOUNT_ID",
"value": "791f5fb10986423e97aa8512f18b7e65"
},
{
"name": "serviceName",
"value": "iam-groups"
}
]
}
]
}'
속성은 serviceInstance 속성은 선택 사항입니다. 생략하면 모든 Secrets Manager 인스턴스에 권한 부여가 적용됩니다. 그리고 SOURCE_ACCOOUNT_ID 및 TARGET_ACCOUNT_ID 는 현재 계정에 대한 인증 또는 특정 계정에 대한
인증을 만들 때 필요합니다.
API 키 사용
다음 예는 API 키를 사용하여 인스턴스에 대한 IAM 자격 증명 엔진을 구성하는 데 사용할 수 있는 쿼리를 보여 줍니다. API를 호출할 때 API 키 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"api_key": "{iam_apikey}", "config_type": "iam_credentials_configuration",
"name": "iam-configuration"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀 만들기를 참조하세요.
Terraform을 사용하여 IAM 인증 정보 엔진 구성
IAM 서비스 권한 부여 사용
다음 예는 IAM 서비스 인증을 사용할 때 Secrets Manager 인스턴스에 대한 IAM 자격 증명 엔진을 구성하는 데 사용할 수 있는 쿼리를 보여 줍니다.
resource "ibm_iam_authorization_policy" "sm_to_iam_identity" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-identity"
roles = ["Service ID creator", "Operator"]
}
resource "ibm_iam_authorization_policy" "sm_to_iam_groups" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-groups"
roles = ["Groups Service Member Manage"]
}
속성은 source_resource_instance_id 속성은 선택 사항입니다. 생략하면 모든 Secrets Manager 인스턴스에 권한 부여가 적용됩니다. 속성은 source_service_account 속성은 선택 사항입니다. 소스 계정이 현재 계정과 동일한 경우 생략할 수 있습니다.
API 키 사용
올바른 액세스 레벨로 IBM Cloud API 키를 작성하는 단계별 지침을 보려면 UI 또는 CLI 단계로 전환하십시오.
다음 예는 서비스 ID의 API 키를 사용하여 IAM 자격 증명 엔진을 구성하는 데 사용할 수 있는 구성을 보여줍니다.
resource "ibm_sm_iam_credentials_configuration" "iam_credentials_configuration" {
instance_id = local.instance_id
region = local.region
name = "iam_credentials_config"
api_key = var.ibmcloud_api_key
}
Secrets Manager IAM 엔진을 사용하여 프로그래밍 방식으로 IAM 자격 증명 엔진을 구성합니다. 구성 예제는 Terraform IBM 모듈을 참조하세요.
UI에서 IAM 자격 증명 엔진의 구성 값 검색하기
Secrets Manager UI를 사용하여 엔진의 구성을 검색할 수 있습니다. 구성을 불러오는 것은 API 키를 사용하여 IAM 자격 증명 엔진을 구성할 때만 유효합니다.
- IAM 신임 정보 시크릿 엔진에서 조치 메뉴
을 클릭하여 엔진 구성에 대한 옵션 목록을 여십시오.
- 구성 값을 보려면 구성 보기를 클릭하십시오.
- 안전한 환경에 있는지 확인한 후 확인 을 클릭하십시오.
시크릿 값이 15초동안 표시되면 대화 상자가 닫힙니다.
CLI를 사용하여 엔진의 구성 값 검색
Secrets Manager CLI를 사용하여 엔진의 구성을 검색할 수 있습니다. 다음 예제 명령에서 엔진 구성 이름을 사용자의 구성 이름으로 바꾸십시오. 구성을 불러오는 것은 API 키를 사용하여 IAM 자격 증명 엔진을 구성할 때만 유효합니다.
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
{instance_ID} 및 {region}을 Secrets Manager 서비스 인스턴스에 적용되는 값으로 바꾸십시오. 인스턴스에 특정한 엔드포인트 URL을 찾으려면 Secrets Manager UI의 엔드포인트 페이지에서 복사할 수 있습니다. 자세한 정보는 엔드포인트 URL 보기를
참조하십시오.
API를 사용하여 엔진의 구성 값 검색
Secrets Manager API를 사용하여 엔진의 구성을 검색할 수 있습니다. 다음 예제 요청에서 엔진 구성 이름을 구성 이름으로 바꾸십시오. 구성을 불러오는 것은 API 키를 사용하여 IAM 자격 증명 엔진을 구성할 때만 유효합니다.
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
{instance_ID} 및 {region}을 Secrets Manager 서비스 인스턴스에 적용되는 값으로 바꾸십시오. 인스턴스에 특정한 엔드포인트 URL을 찾으려면 Secrets Manager UI의 엔드포인트 페이지에서 복사할 수 있습니다. 자세한 정보는 엔드포인트 URL 보기를
참조하십시오.
성공적인 응답은 다른 메타데이터와 함께 엔진 구성 값을 반환합니다. 필수 및 선택 요청 매개변수에 대한 자세한 내용은 구성 가져오기를 참조하세요.
다음 단계
이제 Secrets Manager를 사용하여 IAM 자격 증명을 생성할 수 있습니다. Secrets Manager UI에서 시크릿 > 추가 > IAM 인증 정보를 클릭하여 시크릿 작성을 시작하십시오.
- IAM 인증 정보 작성
- Secrets Manager IAM 엔진 모듈을 사용하여 Secrets Manager IAM 엔진 설정을 자동화하세요.