Perfis confiáveis para usuários e cargas de trabalho federados
Conceder acesso sem gerenciar credenciais. Use perfis confiáveis para usuários federados com atributos SAML ou identidades de carga de trabalho em recursos de computação.
Você pode usar perfis confiáveis para conceder a diferentes identidades IBM Cloud® acesso a recursos em sua conta. Conceda automaticamente aos usuários federados acesso à sua conta com condições baseadas em atributos SAML do seu diretório corporativo. Ou use perfis confiáveis para configurar uma autorização refinada para aplicativos que estejam sendo executados em recursos de computação. Como resultado, não é necessário criar IDs de serviço ou chaves de API para os recursos de cálculo. Você também pode estabelecer confiança com os serviços IBM Cloud ou IDs de serviço em outra conta para conceder acesso entre contas.
Um usuário não precisa ser membro da conta para assumir um perfil confiável. Um usuário pode usar o perfil se o provedor de identidade do usuário ( IdP ) corresponder a um IdP usado nas condições de confiança.
Ao criar inicialmente um perfil confiável, você pode criar condições de confiança com os seguintes tipos de entidades: usuários federados, recursos de computação, IDs de serviço ou serviços IBM Cloud. Depois de criar o perfil confiável, você pode adicionar mais condições para combinar vários tipos de entidades no mesmo perfil.
Você pode usar o site Activity Tracker para monitorar quais usuários federados aplicam recursos de computação, IDs de serviço e serviços IBM Cloud a um perfil confiável. Para obter mais informações, consulte Monitoramento de sessões de login para perfis confiáveis.
Antes de Iniciar
Se você tiver o acesso a seguir, poderá criar perfis confiáveis:
- Proprietário da conta
- Função de administrador em todos os serviços de gerenciamento de conta
- Função de administrador no serviço de identidade do IAM. Para obter mais informações, consulte Serviço de identidade do IAM.
Estabelecimento de confiança com usuários federados no console
Conclua as etapas a seguir para definir quais usuários federados podem acessar recursos específicos:
-
Ativar autenticação por meio de um provedor de identidade externo.
-
No console da IBM Cloud , clique em Gerenciar > Acessar (IAM), e selecione Perfis confiáveis.
-
Clique em Criar.
-
Descreva seu perfil fornecendo um nome, e-mail e uma descrição e, em seguida, clique em Continue (Continuar ).
No e-mail, você pode adicionar um ID de e-mail pessoal ou uma lista de distribuição.
Na descrição, forneça uma lista de ações disponíveis para esse perfil confiável.
-
Você pode criar o perfil confiável antes de adicionar detalhes, selecionando Decidir mais tarde. Ou então, estabeleça a confiança ao concluir as etapas a seguir:
-
Selecione Usuários federados como um tipo de entidade confiável na lista.
-
Selecione Users federated by IBMid ou **Users federated by IBM Cloud App ID como o método de autenticação e insira o provedor de identidade padrão (**IdP ) que você ativou na etapa 1.
Se os usuários para os quais você está criando um perfil confiável usam o IBM Cloud App ID, crie o perfil confiável como um usuário ID do app e, da mesma forma, para IBMid. Dessa forma, seus próprios atributos do SAML podem dar uma ideia de como estruturar as condições de perfil confiável. Outros usuários com o mesmo IdP podem ter atributos SAML diferentes. Use seus próprios atributos apenas como uma sugestão. Para usar atributos em uma reivindicação que sejam diferentes dos seus, insira-os manualmente. {: tip}
- Selecione Users federated by IBMid, Users federated by IBM Cloud App ID, ou **Users federated by IBM Cloud SAML como método de autenticação e insira o provedor de identidade padrão (**IdP ) que você ativou na etapa 1.
-
Inclua condições com base em seus dados do IdP para definir como e quando usuários federados podem aplicar o perfil.
- Ao clicar em Incluir uma condição, é possível definir várias condições. Os usuários federados devem atender a todas as condições para serem incluídos no perfil confiável. Para obter mais informações sobre os campos que são usados para criar condições, consulte Propriedades de condição de IAM.
- Clique em Visualizar dados do provedor de identidade (IdP) para pesquisar nomes e valores de atributo em seus próprios dados pessoais do seu IdP. Para obter mais informações, consulte Usando dados do IdP para construir perfis confiáveis.
-
Defina a duração da sessão para quanto tempo um usuário pode aplicar o perfil antes que seja necessário autenticá-lo novamente.
-
-
Clique em Continuar.
-
(Opcional) Atribua acesso ao perfil confiável.
-
Ou clique em Create (Criar ) sem atribuir nenhum acesso.
Para obter mais informações sobre os campos que são usados para criar condições para perfis confiáveis, consulte Propriedades de condição de IAM.
Estabelecimento de confiança com recursos de computação no console
Conclua as etapas a seguir para configurar um melhor controle sobre a concessão de acesso a recursos de computação.
O IBM Cloud Kubernetes Service suporta apenas perfis confiáveis para versões 1.21 e mais recentes. Os clusters livres do IBM Cloud Kubernetes Service criam apenas versões anteriores. Você tem a opção de criar clusters com uma versão anterior com o plano padrão, portanto, certifique-se de selecionar versão 1.21 ou mais nova.
-
No console da IBM Cloud , clique em Gerenciar > Acessar (IAM), e selecione Perfis confiáveis.
-
Clique em Criar perfil.
-
Descreva seu perfil fornecendo um nome e uma descrição, e clique em Continuar.
-
Você pode criar o perfil confiável antes de adicionar detalhes, selecionando Decidir mais tarde. Ou então, estabeleça a confiança ao concluir as etapas a seguir:
-
Selecione Recursos de cálculo e selecione um tipo de serviço de cálculo na lista.
-
Se você selecionar uma opção para Todos os recursos de serviço, é possível definir várias condições para filtrar recursos para o tipo de serviço de cálculo selecionado clicando em Incluir uma condição. Essas condições são baseadas em atributos, como grupos de recursos ou localização, e aplicam-se a todos os recursos existentes e futuros. Os recursos devem atender a todas as condições para serem incluídos no perfil confiável.
O namespace e os nomes de conta de serviço do Kubernetes que você inserir não devem existir ainda. Qualquer namespace ou conta de serviço futuro com esses nomes podem estabelecer confiança. Para listar os namespaces existentes, efetue login no seu cluster e execute
kubectl get ns. Para listar contas de serviço existentes, efetue login em seu cluster e executekubectl get sa -n <namespace>. Também é possível inserirdefaultpara ambos. -
Se você selecionar Recursos específicos, poderá estabelecer confiança com uma ou mais instâncias de recursos de computação existentes diretamente, sem condições. Por exemplo, um cluster Kubernetes.
-
-
Clique em Continuar.
-
(Opcional) Atribua acesso ao perfil confiável.
-
Ou clique em Create (Criar ) sem atribuir nenhum acesso.
Para obter mais informações sobre os campos que são usados para criar condições para perfis confiáveis, consulte Propriedades de condição de IAM.
Estabelecimento de confiança com os serviços IBM Cloud no console
Um serviço IBM Cloud em sua conta ou em outra conta pode precisar de um token para executar uma operação em sua conta.
- Exemplo 1
- Uma instância de serviço do Project em outra conta pode assumir um perfil confiável para implantar com segurança uma arquitetura em sua conta sem a necessidade de rotação de chaves. Para obter mais informações, consulte Uso de perfis confiáveis para autorizar um projeto a implantar uma arquitetura.
- Exemplo 2
- Um catálogo privado é uma instância do serviço Catalog Management identificada por um CRN. Talvez você queira validar os produtos de seu catálogo privado em uma conta separada daquela que contém seu catálogo. Você pode conceder acesso a um catálogo privado para criar recursos para validação em uma conta de destino, criando um perfil confiável na conta de destino. Em seguida, você estabelece a confiança com o catálogo usando o CRN do catálogo para vincular a instância de serviço ao perfil confiável. Para obter mais informações, consulte Software de integração em seu catálogo privado.
O compartilhamento de recursos entre contas por meio de perfis confiáveis funciona para um conjunto limitado de serviços e não é um método geral de acesso entre contas para serviços.
Conclua as etapas a seguir para definir como um serviço IBM Cloud pode acessar recursos específicos em sua conta:
-
Peça ao administrador do serviço o nome do recurso de nuvem (CRN) que identifica exclusivamente a instância do serviço. O CRN é usado para autorizar operações.
O administrador do serviço pode encontrar o CRN acessando o ícone do Menu de
> Lista de recursos e clicando no nome do serviço que você está direcionando. Na seção Detalhes, copie o CRN. Para um CRN de catálogo privado, vá para Gerenciar > Catálogos > Catálogos privados e selecione o catálogo privado. Clique em Ações... > Editar detalhes do catálogo para localizar o CRN do catálogo.
-
No console da IBM Cloud , clique em Gerenciar > Acessar (IAM), e selecione Perfis confiáveis.
-
Clique em Criar perfil.
-
Defina seu perfil fornecendo um nome e uma descrição e clique em Continue.
Na descrição, forneça uma lista de ações que estão disponíveis para o perfil confiável.
-
Você pode criar o perfil confiável antes de adicionar detalhes, selecionando Decidir mais tarde. Ou então, estabeleça a confiança ao concluir as etapas a seguir:
- Selecione IBM Cloud® services.
- Digite o CRN que o administrador do serviço forneceu a você.
IBM Cloud os serviços são identidades estáticas que não usam condições para estabelecer confiança. Em vez disso, você estabelece a confiança usando o CRN para criar um link direto com a entidade confiável.
-
Clique em Continuar.
-
(Opcional) Atribua acesso ao perfil confiável.
-
Ou clique em Create (Criar ) sem atribuir nenhum acesso.
Estabelecimento de confiança com IDs de serviço no console
Você pode usar perfis confiáveis para conceder a um ID de serviço acesso entre contas e acesso a serviços de infraestrutura clássicos de chamadas. Para conceder a um ID de serviço em uma conta acesso a uma conta de destino, crie o perfil confiável na conta de destino. Conclua as etapas a seguir para definir como um ID de serviço pode acessar recursos específicos em sua conta:
-
Peça a um administrador da outra conta o valor da ID de serviço que identifica a ID de serviço.
Um administrador pode encontrar o valor do ID de serviço acessando Gerenciar > Acesso (IAM) > IDs de serviço e selecionando o ID de serviço que você deseja direcionar. Clique em Details (Detalhes ) e copie o ID que começa com
ServiceId. -
No console da IBM Cloud , clique em Gerenciar > Acessar (IAM), e selecione Perfis confiáveis.
-
Clique em Criar perfil.
-
Defina seu perfil fornecendo um nome e uma descrição e clique em Continue.
Na descrição, forneça uma lista de ações que estão disponíveis para esse perfil confiável.
-
Você pode criar o perfil confiável antes de adicionar detalhes, selecionando Decidir mais tarde. Ou então, estabeleça a confiança ao concluir as etapas a seguir:
- Selecionar IDs de serviço
- Digite o valor da ID de serviço que o administrador forneceu a você.
-
Clique em Continuar.
-
(Opcional) Atribua acesso ao perfil confiável.
-
Ou clique em Create (Criar ) sem atribuir nenhum acesso.
As IDs de serviço são identidades estáticas que não usam condições para estabelecer confiança. Em vez disso, você estabelece a confiança usando o valor da ID dos metadados da ID do serviço para criar um link direto com a entidade confiável.
Atribuição de acesso ao perfil confiável
Depois de estabelecer confiança com usuários federados, recursos de computação, um serviço IBM Cloud ou um ID de serviço, você pode atribuir acesso.
Você pode atribuir acesso à infraestrutura clássica somente se a sua conta estiver vinculada a uma conta da Softlayer.
- Atribuir acesso.
- Atribua acesso ao perfil confiável, incluindo-o em um ou mais grupos de acesso. Dessa forma, é possível usar as políticas que existem nos grupos de acesso que você criou.
- Selecione Grupos de acesso e selecione todos os grupos aos quais você deseja adicionar o perfil confiável. É possível designar usuários apenas aos grupos de acesso aos quais você tem acesso para gerenciar.
- Clique em Incluir.
- Atribua acesso ao perfil confiável com uma política de acesso.
- Selecione Política de acesso. Com base no seu nível de acesso, é possível atribuir políticas de IAM e permissões da infraestrutura clássica.
- Selecione um único serviço ou um grupo de serviços, como Todos os serviços habilitados para identidade e acesso, Todos os serviços de gerenciamento de contas ou Todos os serviços de gerenciamento de contas IAM. Em seguida, clique em Avançar.
- Escopo do acesso a todos os recursos ou a recursos específicos com base em atributos selecionados. Em seguida, clique em Avançar.
- Selecione qualquer combinação de funções e permissões para definir o escopo de acesso, e clique em Revisão.
- Clique em Incluir para incluir sua configuração de política em seu resumo.
- É possível atribuir acesso à infraestrutura Clássica selecionando um usuário, dispositivo ou serviço e, a seguir, qualquer combinação de permissões granulares.
- Atribua acesso ao perfil confiável, incluindo-o em um ou mais grupos de acesso. Dessa forma, é possível usar as políticas que existem nos grupos de acesso que você criou.
- Clique em Criar.
Personalização da experiência do console
Como administrador de perfil confiável, você pode personalizar os itens de navegação que aparecem no banner do console IBM Cloud para os usuários que aplicam um perfil confiável. Esse recurso ajuda a simplificar a experiência do console, ocultando os elementos de navegação aos quais os usuários não precisam ter acesso e impedindo que eles explorem áreas onde não têm permissões.
Para personalizar a navegação do console para um perfil confiável, conclua as etapas a seguir:
- No console IBM Cloud, clique em Gerenciar > Acesso (IAM) e clique em Perfis confiáveis.
- Selecione o perfil confiável que deseja personalizar e clique em Experiência do console.
- Selecione a página de destino que você deseja usar como página de destino padrão e clique em Salvar.
- Selecione os itens de navegação que deseja incluir no banner do console.
- Selecione os catálogos privados em que o perfil confiável pode acessar produtos específicos e clique em Salvar.
Estabelecendo confiança com usuários federados usando a CLI
Conclua as etapas a seguir para definir quais usuários federados podem acessar recursos específicos:
-
Ativar autenticação por meio de um provedor de identidade externo.
-
Crie um perfil confiável executando o comando a seguir:
ibmcloud iam trusted-profile-create my-profile -d "sample trusted profile"Para obter mais informações, consulte a referência da CLI.
-
Para criar condições para o seu perfil confiável, execute o comando
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 1200Para obter mais informações, consulte a referência da CLI.
-
Crie uma política de acesso com a função
Viewerpara todos os recursos na conta executando o comando a seguir:ibmcloud iam trusted-profile-policy-create --roles ViewerPara obter mais informações, consulte a referência da CLI.
Estabelecendo confiança com recursos de cálculo usando a CLI
Conclua as etapas a seguir para configurar um melhor controle sobre a concessão de acesso a recursos de computação.
O IBM Cloud Kubernetes Service suporta apenas perfis confiáveis para versões 1.21 e mais recentes. Os clusters livres do IBM Cloud Kubernetes Service criam apenas versões anteriores. Você tem a opção de criar clusters com uma versão anterior com o plano padrão, portanto, certifique-se de selecionar versão 1.21 ou mais nova.
-
Crie um perfil confiável executando o comando a seguir:
ibmcloud iam trusted-profile-create sample-compute-profile -d "sample trusted profile for compute resources"Para obter mais informações, consulte a referência da CLI.
-
Crie condições para o seu perfil confiável usando o comando
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_SAPara obter mais informações, consulte a referência da CLI.
Também é possível criar um link direto:
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_crnPara obter mais informações, consulte a referência da CLI.
-
Crie uma política de acesso executando o comando a seguir:
ibmcloud iam trusted-profile-policy-create --roles ViewerPara obter mais informações, consulte a referência da CLI.
Estabelecimento de confiança com os serviços IBM Cloud usando a CLI
Um serviço IBM Cloud em outra conta pode precisar de um token para executar uma operação em sua conta. Conclua as etapas a seguir para definir como um serviço IBM Cloud pode acessar recursos específicos em sua conta:
-
Peça ao administrador do serviço em outra conta o CRN que identifica exclusivamente a instância do serviço. O CRN é usado para autorizar operações.
O administrador do serviço pode encontrar o CRN acessando o ícone do Menu de
> Lista de recursos e clicando no serviço que você está direcionando. Na seção Detalhes, copie o CRN.
-
Crie a relação de confiança com um link direto:
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`Para obter mais informações, consulte a referência da CLI.
-
Crie uma política de acesso executando o comando a seguir:
ibmcloud iam trusted-profile-policy-create --roles ViewerPara obter mais informações, consulte a referência da CLI.
Estabelecimento de confiança com IDs de serviço usando a CLI
Conclua as etapas a seguir para definir como um ID de serviço pode acessar recursos específicos em sua conta:
Você pode usar perfis confiáveis para conceder a um ID de serviço acesso entre contas e acesso para chamar os serviços da Infraestrutura Clássica.
-
Peça a um administrador da outra conta o valor da ID de serviço que identifica a ID de serviço.
Um administrador pode encontrar o valor do ID de serviço acessando Gerenciar > Acesso (IAM) > IDs de serviço e selecionando o ID de serviço que você deseja direcionar. Clique em Details (Detalhes ) e copie o ID que começa com
ServiceId. -
Crie a relação de confiança com um link direto:
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`Para obter mais informações, consulte a referência da CLI.
-
Crie uma política de acesso executando o comando a seguir:
ibmcloud iam trusted-profile-policy-create --roles ViewerPara obter mais informações, consulte a referência da CLI.
Atribuição de acesso ao perfil confiável usando a CLI
Depois de estabelecer confiança com usuários federados, recursos de computação, um serviço IBM Cloud ou um ID de serviço, você pode atribuir acesso.
Você pode atribuir acesso à infraestrutura clássica somente se a sua conta estiver vinculada a uma conta da Softlayer.
Use o comando trusted-profile-policy-create para atribuir uma política de acesso ao perfil confiável. O exemplo a seguir atribui
uma política com a função de Administrador em todos os serviços de gerenciamento de contas:
ibmcloud iam trusted-profile-policy-create Profile-36f5c562-1t36-4442-b7f0-2663c85386f1 --roles Administrator --attributes serviceType=service
Estabelecendo confiança com usuários federados usando a API
Conclua as etapas a seguir para definir quais usuários federados podem acessar recursos específicos:
-
Ativar autenticação por meio de um provedor de identidade externo.
-
Crie um perfil confiável especificando seu ID de conta.
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" }'Na descrição, forneça uma lista de ações disponíveis para esse perfil confiável.
-
Crie condições para seu perfil confiável. Para usuários federados, configure o atributo
typeparaProfile-SAML. Orealm-nameé a URL do IdP. Para obter mais informações, consulte a API do IAM Identity Services.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\"" } ] }'Há um limite de 20 regras de reclamação por perfil confiável.
-
(Opcional) Atribua acesso ao perfil confiável.
Estabelecimento de confiança com recursos de computação com a API
Conclua as etapas a seguir para configurar um melhor controle sobre a concessão de acesso a recursos de computação.
O IBM Cloud Kubernetes Service suporta apenas perfis confiáveis para versões 1.21 e mais recentes. Os clusters livres do IBM Cloud Kubernetes Service criam apenas versões anteriores. Você tem a opção de criar clusters com uma versão anterior com o plano padrão, portanto, certifique-se de selecionar versão 1.21 ou mais nova.
-
Crie um perfil confiável especificando seu ID de conta.
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" }'Na descrição, forneça uma lista de ações disponíveis para esse perfil confiável.
-
Crie uma regra de declaração para o seu perfil confiável que siga o princípio do menor privilégio, especificando condições que visam apenas os recursos que precisam de acesso. As condições aplicam-se a todos os recursos futuros existentes. Também é possível criar um link direto com recursos específicos e existentes.
- Criar condições
- Para recursos de computação, defina o atributo
typecomoProfile-CR. Para obter mais informações, consulte a API do IAM Identity Services.
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\"" } ] }'Há um limite de 20 regras de reclamação por perfil confiável.
- Criar um link direto
- Você pode estabelecer um vínculo direto com recursos específicos e existentes.
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" } }'
-
(Opcional) Atribua acesso ao perfil confiável.
Atribuição de acesso ao perfil confiável usando a API
Depois de estabelecer confiança com usuários federados, recursos de computação, um serviço IBM Cloud ou um ID de serviço, você pode atribuir acesso.
Você pode atribuir acesso à infraestrutura clássica somente se a sua conta estiver vinculada a uma conta da Softlayer.
O exemplo a seguir atribui uma política com a função de Administrador em todos os serviços de gerenciamento de contas:
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))