페더레이션 사용자 및 워크로드를 위한 신뢰할 수 있는 프로필
자격 증명을 관리할 필요 없이 액세스 권한을 부여하세요. 컴퓨팅 리소스에서 SAML 속성 또는 워크로드 ID를 가진 페더레이션 사용자에 대해 신뢰할 수 있는 프로필을 사용합니다.
신뢰할 수 있는 프로필을 사용하여 계정의 리소스에 대한 액세스 권한을 다른 IBM Cloud® ID에 부여할 수 있습니다. 회사 디렉토리의 SAML 속성에 기반한 조건으로 연합 사용자에게 계정에 대한 액세스 권한을 자동으로 부여합니다. 또는 신뢰할 수 있는 프로필을 사용하여 컴퓨팅 리소스에서 실행 중인 애플리케이션에 대한 세분화된 권한을 설정할 수 있습니다. 이렇게 하면 계산 리소스의 서비스 ID 또는 API 키를 작성할 필요가 없습니다. 또한 IBM Cloud 서비스 또는 다른 계정의 서비스 ID로 신뢰를 설정하여 교차 계정 액세스를 허용할 수도 있습니다.
사용자는 계정의 회원이 아니어도 신뢰할 수 있는 프로필을 사용할 수 있습니다. 사용자의 ID 공급자( IdP )가 신뢰 조건에 사용된 IdP 과 일치하는 경우 프로필을 사용할 수 있습니다.
처음에 신뢰할 수 있는 프로필을 만들 때 페더레이션 사용자, 컴퓨팅 리소스, 서비스 ID 또는 IBM Cloud 서비스와 같은 엔티티 유형으로 신뢰 조건을 구축할 수 있습니다. 신뢰할 수 있는 프로필을 만든 후에는 조건을 더 추가하여 동일한 프로필에 여러 엔티티 유형을 결합할 수 있습니다.
Activity Tracker 을 사용하여 어떤 페더레이션 사용자가 컴퓨팅 리소스, 서비스 ID 및 IBM Cloud 서비스가 신뢰할 수 있는 프로필을 적용하는지 모니터링할 수 있습니다. 자세한 정보는 신뢰할 수 있는 프로파일에 대한 로그인 세션 모니터링을 참조하십시오.
시작하기 전에
다음 액세스 권한이 있는 경우에는 신뢰할 수 있는 프로파일을 작성할 수 있습니다.
- 계정 소유자
- 모든 계정 관리 서비스에 대한 관리자 역할
- IAM ID 서비스에 대한 관리자 역할 자세한 정보는 IAM ID 서비스를 참조하십시오.
콘솔에서 페더레이션된 사용자와 신뢰 구축하기
다음 단계를 완료하여 특정 리소스에 액세스할 수 있는 연합 사용자를 정의하십시오.
-
IBM Cloud 콘솔에서 관리 > 액세스 (IAM) 를 클릭하고 신뢰 프로파일 을 선택하십시오.
-
작성을 클릭하십시오.
-
이름, 이메일, 설명을 입력하여 프로필을 설명한 다음 계속을 클릭합니다.
이메일에서 개인 이메일 ID 또는 배포 목록을 추가할 수 있습니다.
설명에서 이 신뢰 프로파일에 사용 가능한 조치 목록을 제공하십시오.
-
나중에 결정하기를 선택하여 세부 정보를 추가하기 전에 신뢰할 수 있는 프로필을 만들 수 있습니다. 또는 다음 단계를 완료하여 신뢰를 구축하세요:
-
목록에서 신뢰 엔티티 유형으로 연합 사용자를 선택하십시오.
-
인증 방법으로 연합된 사용자 IBMid 또는 연합된 사용자 IBM Cloud App ID 을 선택하고 1단계에서 활성화한 기본 ID 공급자(IdP)를 입력합니다.
신뢰할 수 있는 프로파일 작성의 대상인 사용자가 IBM Cloud App ID을(를) 사용하는 경우에는 해당 신뢰할 수 있는 프로파일을 App ID 사용자로서 작성해야 하며, IBMid의 경우에도 마찬가지입니다. 이러한 방식으로 자체 SAML 속성을 사용하면 신뢰할 수 있는 프로파일 조건을 구성하는 방법에 대한 아이디어를 얻을 수 있습니다. IdP가 동일한 다른 사용자는 다른 SAML 속성을 가질 수 있습니다. 자신의 속성은 힌트로만 사용하십시오. 소유한 것과 다른 속성을 청구에서 사용하려면 수동으로 입력하십시오. {: tip}
- 인증 방법으로 연합된 사용자 IBMid, 연합된 사용자 IBM Cloud App ID 또는 연합된 사용자 IBM Cloud SAML 를 선택하고 1단계에서 활성화한 기본 ID 공급자(IdP)를 입력합니다.
-
사용자의 IdP 데이터를 기반으로 하는 조건을 추가하여 연합 사용자가 프로파일을 적용할 수 있는 방법과 시기를 정의합니다.
- 조건 추가를 클릭하면 다중 조건을 정의할 수 있습니다. 연합 사용자는 신뢰 프로파일에 포함될 모든 조건을 충족해야 합니다. 조건을 작성하는 데 사용되는 필드에 대한 자세한 정보는 IAM 조건 특성의 내용을 참조하십시오.
- ID 제공자(IdP) 데이터 보기를 클릭하여 IdP에서 고유한 개인 데이터의 속성 이름 및 값을 검색하십시오. 자세한 정보는 IdP 데이터를 사용하여 신뢰 프로파일 빌드를 참조하십시오.
-
사용자가 재인증하기 전에 프로파일을 적용할 수 있는 기간에 대한 세션 지속 기간을 정의하십시오.
-
-
계속을 클릭합니다.
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
-
또는 액세스 권한을 할당하지 않고 만들기를 클릭합니다.
신뢰할 수 있는 프로파일에 대한 조건을 작성하는 데 사용되는 필드에 대한 자세한 정보는 IAM 조건 특성을 참조하십시오.
콘솔에서 컴퓨팅 리소스로 신뢰 구축하기
컴퓨팅 리소스에 대한 액세스 권한을 부여하는 데 향상된 제어를 설정하려면 다음 단계를 완료하십시오.
IBM Cloud Kubernetes Service에서는 버전 1.21 이상에 대한 신뢰 프로파일만 지원합니다. 무료 IBM Cloud Kubernetes Service 클러스터는 이전 버전만 작성합니다. 이전 버전의 표준 플랜을 사용하여 클러스터를 작성하도록 선택할 수 있으므로 버전 1.21 이상을 선택해야 합니다.
-
IBM Cloud 콘솔에서 관리 > 액세스 (IAM) 를 클릭하고 신뢰 프로파일 을 선택하십시오.
-
프로파일 작성을 클릭합니다.
-
이름 및 설명을 제공하여 프로파일을 설명하고 계속을 클릭하십시오.
-
나중에 결정하기를 선택하여 세부 정보를 추가하기 전에 신뢰할 수 있는 프로필을 만들 수 있습니다. 또는 다음 단계를 완료하여 신뢰를 구축하세요:
-
컴퓨팅 리소스를 선택하고 목록에서 계산 서비스 유형을 선택하십시오.
-
모든 서비스 리소스에 대한 옵션을 선택하는 경우, 조건 추가를 클릭하여 선택한 계산 서비스 유형에 맞게 리소스를 필터링하기 위해 다중 조건을 정의할 수 있습니다. 이러한 조건은 리소스 그룹 또는 위치와 같은 속성을 기반으로 하며 기존 및 미래 자원 모두에 적용됩니다. 자원은 신뢰 프로파일에 포함될 모든 조건을 충족해야 합니다.
입력하는 Kubernetes 네임스페이스 및 서비스 계정 이름은 이미 존재하지 않아도 됩니다. 이러한 이름을 가진 향후 네임스페이스 또는 서비스 계정은 신뢰를 확립할 수 있습니다. 기존 네임스페이스를 나열하려면 클러스터에 로그인하고
kubectl get ns를 실행하십시오. 기존 서비스 계정을 나열하려면 클러스터에 로그인하여kubectl get sa -n <namespace>을(를) 실행하십시오. 또한 둘 다에default을(를) 입력할 수 있습니다. -
특정 리소스를 선택하면 조건 없이 하나 이상의 기존 컴퓨팅 리소스 인스턴스와 직접 신뢰를 설정할 수 있습니다. 예를 들어, Kubernetes 클러스터입니다.
-
-
계속을 클릭합니다.
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
-
또는 액세스 권한을 할당하지 않고 만들기를 클릭합니다.
신뢰할 수 있는 프로파일에 대한 조건을 작성하는 데 사용되는 필드에 대한 자세한 정보는 IAM 조건 특성을 참조하십시오.
콘솔에서 IBM Cloud 서비스로 신뢰 구축하기
내 계정의 IBM Cloud 서비스 또는 다른 계정에서 작업을 실행하려면 토큰이 필요할 수 있습니다.
- 예제 1
- 다른 계정의 프로젝트 서비스 인스턴스는 신뢰할 수 있는 프로필을 가정하여 키 로테이션 없이도 계정에 아키텍처를 안전하게 배포할 수 있습니다. 자세한 내용은 신뢰할 수 있는 프로필을 사용하여 프로젝트에 아키텍처 배포 권한을 부여하는 방법을 참조하세요.
- 예제 2
- 비공개 카탈로그는 CRN에 의해 식별되는 카탈로그 관리 서비스의 인스턴스입니다. 카탈로그가 포함된 계정과 별도의 계정에서 비공개 카탈로그의 제품 유효성을 검사하고 싶을 수 있습니다. 대상 계정에서 신뢰할 수 있는 프로필을 만들어 대상 계정에서 유효성 검사를 위한 리소스를 만들 수 있는 비공개 카탈로그 액세스 권한을 부여할 수 있습니다. 그런 다음 카탈로그 CRN을 사용하여 서비스 인스턴스를 신뢰할 수 있는 프로필에 연결하여 카탈로그와 신뢰를 구축합니다. 자세한 내용은 비공개 카탈로그에 소프트웨어 온보딩을 참조하세요.
신뢰할 수 있는 프로필을 사용하여 계정 간에 리소스를 공유하는 것은 제한된 서비스 집합에서 작동하며 서비스에 대한 일반적인 계정 간 액세스 방법이 아닙니다.
다음 단계를 완료하여 IBM Cloud 서비스가 계정의 특정 리소스에 액세스할 수 있는 방법을 정의하세요:
-
서비스 관리자에게 서비스 인스턴스를 고유하게 식별하는 CRN(클라우드 리소스 이름)을 요청하세요. CRN은 작업을 승인하는 데 사용됩니다.
서비스 관리자는 탐색 메뉴 아이콘
> 리소스 목록으로 이동하여 대상 서비스의 이름을 클릭하여 CRN을 찾을 수 있습니다. 세부 정보 섹션에서 CRN을 복사합니다. 비공개 카탈로그 CRN의 경우 관리 > 카탈로그 > 비공개 카탈로그로 이동하여 비공개 카탈로그를 선택합니다. 작업... > 카탈로그 세부 정보 편집을 클릭하여 카탈로그 CRN을 찾습니다.
-
IBM Cloud 콘솔에서 관리 > 액세스 (IAM) 를 클릭하고 신뢰 프로파일 을 선택하십시오.
-
프로파일 작성을 클릭합니다.
-
이름과 설명을 입력하여 프로필을 정의하고 계속을 클릭합니다.
설명에 신뢰할 수 있는 프로필에 사용할 수 있는 작업 목록을 입력합니다.
-
나중에 결정하기를 선택하여 세부 정보를 추가하기 전에 신뢰할 수 있는 프로필을 만들 수 있습니다. 또는 다음 단계를 완료하여 신뢰를 구축하세요:
- IBM Cloud® 서비스를 선택합니다.
- 서비스 관리자가 제공한 CRN을 입력합니다.
IBM Cloud 서비스는 조건을 사용하여 신뢰를 구축하지 않는 정적 ID입니다. 대신 CRN을 사용하여 신뢰할 수 있는 엔티티와 직접 링크를 생성하여 신뢰를 구축합니다.
-
계속을 클릭합니다.
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
-
또는 액세스 권한을 할당하지 않고 만들기를 클릭합니다.
콘솔에서 서비스 ID로 신뢰 설정하기
신뢰할 수 있는 프로필을 사용하여 서비스 ID에 계정 간 액세스 권한을 부여하고 클래식 인프라 서비스를 호출할 수 있는 액세스 권한을 부여할 수 있습니다. 한 계정의 서비스 ID에 대상 계정에 대한 액세스 권한을 부여하려면 대상 계정에서 신뢰할 수 있는 프로필을 만듭니다. 다음 단계를 완료하여 서비스 ID가 계정의 특정 리소스에 액세스할 수 있는 방법을 정의하세요:
-
다른 계정의 관리자에게 서비스 ID를 식별하는 서비스 ID 값을 요청하세요.
관리자는 관리 > 액세스(IAM ) > 서비스 ID로 이동하여 대상을 지정하려는 서비스 ID를 선택하면 서비스 ID 값을 찾을 수 있습니다. 세부 정보를 클릭하고
ServiceId로 시작하는 ID를 복사합니다. -
IBM Cloud 콘솔에서 관리 > 액세스 (IAM) 를 클릭하고 신뢰 프로파일 을 선택하십시오.
-
프로파일 작성을 클릭합니다.
-
이름과 설명을 입력하여 프로필을 정의하고 계속을 클릭합니다.
설명에 이 신뢰할 수 있는 프로필에 사용할 수 있는 작업 목록을 입력합니다.
-
나중에 결정하기를 선택하여 세부 정보를 추가하기 전에 신뢰할 수 있는 프로필을 만들 수 있습니다. 또는 다음 단계를 완료하여 신뢰를 구축하세요:
- 서비스 ID 선택
- 관리자가 제공한 서비스 ID 값을 입력합니다.
-
계속을 클릭합니다.
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
-
또는 액세스 권한을 할당하지 않고 만들기를 클릭합니다.
서비스 ID는 조건을 사용하여 신뢰를 설정하지 않는 정적 ID입니다. 대신 서비스 ID 메타데이터의 ID 값을 사용하여 신뢰할 수 있는 엔티티와 직접 링크를 생성하여 신뢰를 구축합니다.
신뢰할 수 있는 프로필에 액세스 권한 할당하기
페더레이션 사용자, 컴퓨팅 리소스, IBM Cloud 서비스 또는 서비스 ID와 신뢰를 설정한 후 액세스 권한을 할당할 수 있습니다.
계정이 소프트레이어 계정에 연결된 경우에만 클래식 인프라 액세스 권한을 할당할 수 있습니다.
- 액세스 권한을 할당합니다.
- 신뢰할 수 있는 프로파일을 하나 이상의 액세스 그룹에 이를 추가하여 이에 대한 액세스 권한을 지정하십시오. 이 방법을 사용하면 작성한 액세스 그룹에 있는 정책을 사용할 수 있습니다.
- 그룹 액세스를 선택하고 신뢰할 수 있는 프로필을 추가할 모든 그룹을 선택합니다. 자신에게 관리할 액세스 권한이 있는 액세스 그룹에만 사용자를 지정할 수 있습니다.
- 추가 를 클릭하십시오.
- 액세스 정책을 사용하여 신뢰할 수 있는 프로파일에 대한 액세스 권한을 지정하십시오.
- 액세스 정책을 선택하십시오. 사용자의 액세스 레벨을 기반으로 IAM 정책 및 일반 인프라 권한을 지정할 수 있습니다.
- 단일 서비스 또는 모든 ID 및 액세스 사용 서비스, 모든 계정 관리 서비스 또는 모든 IAM 계정 관리 서비스와 같은 서비스 그룹을 선택합니다. 그리고 나서 다음을 클릭하십시오.
- 선택한 속성에 따라 모든 리소스 또는 특정 리소스에 대한 액세스 범위를 지정합니다. 그런 후 다음 을 클릭하십시오.
- 임의의 역할 및 권한의 조합을 선택하여 액세스의 범위를 정의하고 검토를 클릭하십시오.
- 추가를 클릭하여 요약에 정책 구성을 추가하십시오.
- 사용자, 디바이스 또는 서비스를 선택한 다음 세분화된 권한 조합을 선택하여 클래식 인프라 액세스를 지정할 수 있습니다.
- 신뢰할 수 있는 프로파일을 하나 이상의 액세스 그룹에 이를 추가하여 이에 대한 액세스 권한을 지정하십시오. 이 방법을 사용하면 작성한 액세스 그룹에 있는 정책을 사용할 수 있습니다.
- 작성을 클릭하십시오.
콘솔 환경 사용자 지정
신뢰할 수 있는 프로필 관리자는 신뢰할 수 있는 프로필을 적용하는 사용자에게 IBM Cloud 콘솔 배너에 표시되는 탐색 항목을 사용자 지정할 수 있습니다. 이 기능은 사용자가 액세스할 필요가 없는 탐색 요소를 숨기고 사용자가 권한이 없는 영역을 탐색하지 못하도록 하여 콘솔 환경을 간소화하는 데 도움이 됩니다.
신뢰할 수 있는 프로필에 대한 콘솔 탐색을 사용자 지정하려면 다음 단계를 완료하세요:
- IBM Cloud 콘솔에서 관리 > 액세스(IAM)를 클릭하고 신뢰할 수 있는 프로필을 클릭합니다.
- 사용자 지정하려는 신뢰할 수 있는 프로필을 선택하고 콘솔 환경을 클릭합니다.
- 기본 랜딩 페이지로 사용할 랜딩 페이지를 선택하고 저장을 클릭합니다.
- 콘솔 배너에 포함할 탐색 항목을 선택합니다.
- 신뢰할 수 있는 프로필이 특정 제품에 액세스할 수 있는 비공개 카탈로그를 선택하고 저장을 클릭합니다.
CLI를 사용하여 연합 사용자와 신뢰 구축
다음 단계를 완료하여 특정 리소스에 액세스할 수 있는 연합 사용자를 정의하십시오.
-
다음 명령을 실행하여 신뢰 프로파일을 작성하십시오.
ibmcloud iam trusted-profile-create my-profile -d "sample trusted profile"자세한 내용은 CLI 참조를 참조하세요.
-
신뢰 프로파일에 대한 조건을 작성하려면
ibmcloud iam trusted-profile-rule-create명령을 실행하십시오.ibmcloud iam trusted-profile-rule-create my-profile --name my-rule --type Profile-SAML --conditions claim:cn,operator:EQUALS,value:my_user --realm-name https://w3id.sso.ibm.com/auth/sps/samlidp2/saml20 --expiration 1200자세한 내용은 CLI 참조를 참조하세요.
-
다음 명령을 실행하여 계정의 모든 리소스에 대한
Viewer역할이 있는 액세스 정책을 작성하십시오.ibmcloud iam trusted-profile-policy-create --roles Viewer자세한 내용은 CLI 참조를 참조하세요.
CLI를 사용하여 컴퓨팅 리소스와의 신뢰 확립
컴퓨팅 리소스에 대한 액세스 권한을 부여하는 데 향상된 제어를 설정하려면 다음 단계를 완료하십시오.
IBM Cloud Kubernetes Service에서는 버전 1.21 이상에 대한 신뢰 프로파일만 지원합니다. 무료 IBM Cloud Kubernetes Service 클러스터는 이전 버전만 작성합니다. 이전 버전의 표준 플랜을 사용하여 클러스터를 작성하도록 선택할 수 있으므로 버전 1.21 이상을 선택해야 합니다.
-
다음 명령을 실행하여 신뢰 프로파일을 작성하십시오.
ibmcloud iam trusted-profile-create sample-compute-profile -d "sample trusted profile for compute resources"자세한 내용은 CLI 참조를 참조하세요.
-
ibmcloud iam trusted-profile-rule-create명령을 사용하여 신뢰 프로파일에 대한 조건을 작성하십시오.ibmcloud iam trusted-profile-rule-create sample-compute-profile --name cr-rule --type Profile-CR --conditions claim:namespace,operator:EQUALS,value:default --conditions claim:crn,operator:EQUALS,value:crn:test:bluemix:public:containers-kubernetes:us-south:a/test:: --cr-type IKS_SA자세한 내용은 CLI 참조를 참조하세요.
직접 링크를 작성할 수도 있습니다.
ibmcloud iam trusted-profile-link-create sample-compute-profile --name my_link --cr-type IKS_SA --link-name default --link-namespace default --link-crn my_compute_resource_crn자세한 내용은 CLI 참조를 참조하세요.
-
다음 명령을 실행하여 액세스 정책을 작성하십시오.
ibmcloud iam trusted-profile-policy-create --roles Viewer자세한 내용은 CLI 참조를 참조하세요.
CLI를 사용하여 IBM Cloud 서비스로 신뢰 구축하기
다른 계정의 IBM Cloud 서비스가 내 계정에서 작업을 실행하려면 토큰이 필요할 수 있습니다. 다음 단계를 완료하여 IBM Cloud 서비스가 계정의 특정 리소스에 액세스할 수 있는 방법을 정의하세요:
-
다른 계정의 서비스 관리자에게 서비스 인스턴스를 고유하게 식별하는 CRN을 요청하세요. CRN은 작업을 승인하는 데 사용됩니다.
서비스 관리자는 탐색 메뉴 아이콘
> 리소스 목록으로 이동하여 타겟팅하는 서비스를 클릭하여 CRN을 찾을 수 있습니다. 세부 정보 섹션에서 CRN을 복사합니다.
-
직접 링크를 사용하여 신뢰 관계를 만듭니다:
ibmcloud iam trusted-profile-link-create sample-cloudservice-profile --name my_cloudservice_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`자세한 내용은 CLI 참조를 참조하세요.
-
다음 명령을 실행하여 액세스 정책을 작성하십시오.
ibmcloud iam trusted-profile-policy-create --roles Viewer자세한 내용은 CLI 참조를 참조하세요.
CLI를 사용하여 서비스 ID로 신뢰 구축하기
다음 단계를 완료하여 서비스 ID가 계정의 특정 리소스에 액세스할 수 있는 방법을 정의하세요:
신뢰할 수 있는 프로필을 사용하여 서비스 ID에 계정 간 액세스 권한을 부여하고 클래식 인프라 서비스를 호출할 수 있는 액세스 권한을 부여할 수 있습니다.
-
다른 계정의 관리자에게 서비스 ID를 식별하는 서비스 ID 값을 요청하세요.
관리자는 관리 > 액세스(IAM ) > 서비스 ID로 이동하여 대상을 지정하려는 서비스 ID를 선택하면 서비스 ID 값을 찾을 수 있습니다. 세부 정보를 클릭하고
ServiceId로 시작하는 ID를 복사합니다. -
직접 링크를 사용하여 신뢰 관계를 만듭니다:
ibmcloud iam trusted-profile-link-create sample-serviceid-profile --name my_serviceid_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`자세한 내용은 CLI 참조를 참조하세요.
-
다음 명령을 실행하여 액세스 정책을 작성하십시오.
ibmcloud iam trusted-profile-policy-create --roles Viewer자세한 내용은 CLI 참조를 참조하세요.
CLI를 사용하여 신뢰할 수 있는 프로필에 액세스 권한 할당하기
페더레이션 사용자, 컴퓨팅 리소스, IBM Cloud 서비스 또는 서비스 ID와 신뢰를 설정한 후 액세스 권한을 할당할 수 있습니다.
계정이 소프트레이어 계정에 연결된 경우에만 클래식 인프라 액세스 권한을 할당할 수 있습니다.
명령을 사용하여 trusted-profile-policy-create 명령을 사용하여 신뢰할 수 있는 프로필에 액세스 정책을 할당합니다. 다음 예에서는 모든 계정 관리 서비스에서 관리자 역할의 정책을
할당합니다:
ibmcloud iam trusted-profile-policy-create Profile-36f5c562-1t36-4442-b7f0-2663c85386f1 --roles Administrator --attributes serviceType=service
API를 사용하여 연합 사용자와 신뢰 구축
다음 단계를 완료하여 특정 리소스에 액세스할 수 있는 연합 사용자를 정의하십시오.
-
계정 ID를 지정하여 신뢰 프로파일을 작성하십시오.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "My Nice Profile", "description": "My Nice Profile - desc", "account_id": "ACCOUNT_ID" }'설명에서 이 신뢰 프로파일에 사용 가능한 조치 목록을 제공하십시오.
-
신뢰 프로파일에 대한 조건을 작성하십시오. 연합 사용자의 경우
type속성을Profile-SAML으로 설정하십시오.realm-name은 IdP URL입니다. 자세한 정보는 IAM ID 서비스 API를 참조하십시오.curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "type": "Profile-SAML", "realm_name": "https://www.example.org/my-nice-idp", "expiration": 43200, "conditions": [ { "claim": "groups", "operator": "EQUALS", "value": "\"cloud-docs-dev\"" } ] }'신뢰 프로파일당 20개의 클레임 규칙 한계가 있습니다.
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
API로 컴퓨팅 리소스에 대한 신뢰 구축하기
컴퓨팅 리소스에 대한 액세스 권한을 부여하는 데 향상된 제어를 설정하려면 다음 단계를 완료하십시오.
IBM Cloud Kubernetes Service에서는 버전 1.21 이상에 대한 신뢰 프로파일만 지원합니다. 무료 IBM Cloud Kubernetes Service 클러스터는 이전 버전만 작성합니다. 이전 버전의 표준 플랜을 사용하여 클러스터를 작성하도록 선택할 수 있으므로 버전 1.21 이상을 선택해야 합니다.
-
계정 ID를 지정하여 신뢰 프로파일을 작성하십시오.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "My Nice Profile", "description": "My Nice Profile - desc", "account_id": "ACCOUNT_ID" }'설명에서 이 신뢰 프로파일에 사용 가능한 조치 목록을 제공하십시오.
-
액세스가 필요한 리소스만 대상으로 지정하는 조건을 지정하여 최소 권한의 원칙을 따르는 신뢰 프로파일에 대한 클레임 규칙을 작성하십시오. 조건은 기존의 모든 이후 리소스에 적용됩니다. 특정 기존 리소스와의 직접 링크를 작성할 수도 있습니다.
- 조건 만들기
- 컴퓨팅 리소스의 경우
type속성을Profile-CR으로 설정합니다. 자세한 정보는 IAM ID 서비스 API를 참조하십시오.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "type": "Profile-CR", "conditions": [ { "claim": "namespace", "operator": "EQUALS", "value": "\"default123\"" } ] }'신뢰 프로파일당 20개의 클레임 규칙 한계가 있습니다.
- Direct Link 작성
- 특정 기존 리소스와 직접 연결할 수 있습니다.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/links' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "my link", "cr_type": "VSI", "is_cross_account": true, "link": { "crn": "crn:v1:staging:public:iam-identity::a/18e3020749ce4744b0b472466d61fdb4::computeresource:Fake-Compute-Resource", "namespace": "default", "name": "my compute resource name" } }'
-
(선택 사항) 신뢰할 수 있는 프로필에 액세스 권한을 할당합니다.
API를 사용하여 신뢰할 수 있는 프로필에 액세스 권한 할당하기
페더레이션 사용자, 컴퓨팅 리소스, IBM Cloud 서비스 또는 서비스 ID와 신뢰를 설정한 후 액세스 권한을 할당할 수 있습니다.
계정이 소프트레이어 계정에 연결된 경우에만 클래식 인프라 액세스 권한을 할당할 수 있습니다.
다음 예에서는 모든 계정 관리 서비스에서 관리자 역할의 정책을 할당합니다:
curl -X POST \
'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: $TOKEN'\
-H 'Content-Type: application/json'\
-d '{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceType",
"value": "platform-service"
}
]
}
]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9")
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:iam::::role:Administrator")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value("exampleAccountId")
.operator("stringEquals")
.build();
ResourceAttribute serviceTypeResourceAttribute = new ResourceAttribute.Builder()
.name("serviceType")
.value("platform-service")
.operator("stringEquals")
.build();
PolicyResource policyResources = new PolicyResource.Builder()
.addAttributes(accountIdResourceAttribute)
.addAttributes(serviceTypeResourceAttribute)
.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: "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9",
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: 'exampleAccountId',
operator: 'stringEquals',
};
const serviceTypeResourceAttribute = {
name: 'serviceType',
value: 'platform-service',
operator: 'stringEquals',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceTypeResourceAttribute]
},
];
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='Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
name='serviceType', value='platform-service')
policy_resources = PolicyResource(
attributes=[account_id_resource_attribute,
service_type_resource_attribute])
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: core.StringPtr("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr("ACCOUNT_ID"),
Operator: core.StringPtr("stringEquals"),
}
serviceTypeResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceType"),
Value: core.StringPtr("platform-service"),
Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
Attributes: []iampolicymanagementv1.ResourceAttribute{
*accountIDResourceAttribute, *serviceTypeResourceAttribute},
}
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))