Capítulo 3: OCI Foundations
3.6 IAM, Limites, Cotas e Audit
O serviço Identity and Access Management (IAM) fornece recursos para o gerenciamento de identidades e o controle de acesso aos recursos que você cria e gerencia no OCI.
-
Gerenciamento de Identidades
- Envolve a administração de usuários, senhas e grupos.
-
Controle de Acesso
- Refere-se às políticas de acesso que definem e concedem autorizações, determinando quem pode acessar quais recursos e em que nível.
Toda ação realizada sobre qualquer recurso no OCI, deve ser iniciada por um usuário válido que consiga se autenticar. Este é o primeiro passo no processo de concessão de acesso. Após uma autenticação bem-sucedida, o OCI verifica se o usuário possui a autorização necessária para executar a ação solicitada.
Esse conjunto de processos, que começa com a verificação da autenticação e passa pela checagem de autorização, é gerenciado pelo serviço IAM.
Em resumo, o IAM assegura que apenas usuários autenticados e autorizados possam interagir com recursos específicos, garantindo a segurança e a integridade do seu ambiente no OCI.
Iniciaremos com uma explicação sobre o gerenciamento de identidades, abordando usuários e grupos. Em seguida, discutiremos o processo de autorização ou controle de acesso e, por último, exploraremos o que são Limites do Serviço e Cotas de Compartimento.
3.6.1 Gerenciamento de Identidades
Cada ação realizada nos recursos do OCI, que incluem os recursos do seu Tenancy, deve ser executada por um usuário nomeado e válido, independentemente de ser através do Web Console, OCI CLI ou SDK.
O gerenciamento de identidades no OCI é feito através de dois recursos:
-
- Uma conta de usuário é uma entidade que representa uma pessoa ou um serviço que pode interagir com os recursos do OCI.
-
- Um grupo de usuários é uma coleção de contas de usuários que compartilham as mesmas permissões e políticas de acesso.
Iniciaremos a explicação sobre o Gerenciamento de Identidades através do usuário Administrador do Tenancy. Em seguida, abordaremos o processo de criação de usuários e grupos.
Usuário Administrador
Toda conta criada no OCI possui, por padrão, um usuário administrador. Além de ter acesso total ao Tenancy, este é o primeiro usuário do IAM criado após a ativação da conta, sendo responsável por configurar todos os demais usuários.
O usuário administrador pertence automaticamente ao grupo Administrators. Você não pode excluir esse grupo, e deve sempre haver pelo menos um usuário contido nele.
Apenas para registrar, e abordaremos isso mais adiante, o acesso total ao Tenancy para o grupo Administrators é concedido por meio de uma Policy chamada "Tenant Admin Policy". Essa Policy pode ser consultada utilizando o comando abaixo:
NOTA
O comando para consultar a policy "Tenant Admin Policy" deve incluir, no parâmetro --compartment-id, o valor OCID do Tenancy. Note que o comando anterior, que exibiu o grupo Administrators, trouxe esse valor por meio da chave "compartment-id".
Criando Usuários
O comando abaixo é utilizado para criar um novo usuário com o nome de login fulano.beltrano:
O parâmetro --email permite especificar o endereço de e-mail do usuário, que deve ser exclusivo entre todos os usuários do Tenancy. Uma das principais funções desse endereço de e-mail é facilitar ações de recuperação de senha, por exemplo.
Para definir uma senha para o usuário, que será utilizada para acessar o OCI por meio da Web Console, é necessário primeiro obter o OCID do usuário utilizando o seguinte comando:
Com o OCID do usuário, é possível definir uma nova senha, seja para um novo acesso ou em caso de perda da senha anterior:
Observe que a senha, presente na chave "password", foi gerada automaticamente pelo OCI.
NOTA
Consulte "Gerenciando Políticas de Senha" para obter mais informações sobre como ajustar as políticas de senha do Tenancy.
NOTA
O OCI também oferece suporte ao uso de usuários federados, além dos usuários locais criados diretamente no IAM. Para um exemplo de como federar usuários com o Microsoft Active Directory (AD), consulte o apêndice A.4 Federação com Microsoft Active Directory (AD).
Criando Grupos
O acesso aos diversos recursos do OCI é concedido a grupos, e não a usuários individuais. Isso significa que, como administrador, você deve autorizar um grupo de usuários em vez de conceder permissões a cada usuário individual.
Um grupo é uma coleção de usuários, e um usuário pode ser membro de mais de um grupo.
Para criar um grupo de usuários, execute o comando abaixo:
Após a criação do grupo, é possível adicionar usuários a ele. Para isso, é necessário obter o OCID tanto do grupo quanto do usuário que será adicionado.
O comando abaixo retorna o OCID do grupo group-network recém-criado:
Para adicionar o usuário fulano.beltrano ao grupo network-users, utilize o seguinte comando:
O comando abaixo exibe a lista de usuários que são membros do grupo network-users:
Grupos de Usuários da Aplicação OCI PIZZA
O script scripts/capitulo-2/group.sh contido no repositório "ocipizza-iac", inclui todos os comandos necessários para a criação dos Grupos de Usuários utilizados pela aplicação OCI PIZZA.
3.6.2 Controle de Acesso
Toda interação com as APIs do OCI exige uma autorização explícita. Isso significa que, por exemplo, para que um usuário possa criar uma VCN, após se autenticar com sucesso, ele deve ter as permissões adequadas para realizar essa ação.
A concessão de acesso ou autorização no OCI é realizada por meio de dois recursos principais, que são:
-
- São unidades de organização que permitem agrupar e isolar recursos, facilitando a gestão e o controle de acesso.
-
- São regras que definem permissões e controlam o acesso aos recursos.
Uma boa prática é iniciar o "desenho do processo de autorização" com as definições dos compartimentos. Após a criação dos compartimentos, é necessário criar as políticas de acesso para permitir que um grupo de usuários crie e gerencie os recursos contidos em cada compartimento específico.
Compartimentos
Compartimentos, ou Compartments, são uma estrutura lógica que permite organizar e isolar os recursos que você cria no OCI. Utilizar compartimentos facilita o gerenciamento desses recursos e proporciona uma camada adicional de proteção contra acessos não autorizados.
NOTA
Lembre-se: um compartimento, juntamente com sua política de acesso correspondente, protege o acesso dos usuários às APIs do OCI, permitindo listar, criar, excluir ou atualizar recursos na nuvem. No entanto, os compartimento não impõem controle de acesso em nível de rede, ou seja, não funcionam como um firewall.
Toda conta no OCI possui um Root Compartment ou Tenancy Compartment, que é criado automaticamente após a ativação da conta. Isso se deve ao fato de que todos os recursos que você cria, deve ser colocado dentro de um compartimento. Em outras palavras, cada recurso deve pertencer a um único compartimento.
O nome do Root Compartment corresponde ao nome da conta que foi especificado durante o processo de cadastro (ocipizza). Você pode obter o seu OCID utilizando o comando abaixo:
Entenda o Root ou Tenancy Compartment, como se fosse o "contêiner pai" que abriga todos os seus recursos no OCI, incluindo os recursos de outros compartimento.
NOTA
Alocar recursos diretamente no Root Compartment não é uma boa prática, especialmente quando há diferentes usuários na organização que precisarão interagir com os recursos no OCI. A boa prática é ter diferentes compartimentos sendo que cada compartimento, será gerenciado por um grupo específico de usuários.
A Web Console filtra a exibição dos seus recursos por compartimento dentro da região, e você deve selecionar o compartimento em que deseja trabalhar a partir de uma lista.
Os compartimento são recursos globais e, uma vez criados, estarão disponíveis em todas as regiões inscritas.
Por fim, é possível criar até seis subcompartimentos dentro de um compartimento, e a maioria dos recursos pode ser movida entre compartimentos.
Compartimentos da Aplicação OCI PIZZA
Para ilustrar melhor o uso de Compartimento, imagine diferentes grupos de profissionais de TI colaborando no desenvolvimento da aplicação OCI PIZZA. Esses grupos incluem:
-
REDES
- Grupo de pessoas responsáveis pela criação e gerenciamento dos recursos de rede no OCI.
-
APLICAÇÃO
- Grupo de pessoas responsáveis pela criação e gerenciamento de recursos de computação, bem como pela implantação da aplicação.
-
DBA
- Grupo de pessoas responsáveis pela criação e gerenciamento dos Bancos de Dados.
A separação de funções por tipo de profissional é uma prática comum que garante que cada equipe tenha acesso somente aos recursos necessários para desempenhar suas atividades. Por exemplo, os profissionais da equipe de REDES terão permissão apenas para gerenciar recursos de rede, como VCNs, sub-redes, VPNs Site-To-Site, etc.
Por outro lado, os profissionais de APLICAÇÃO terão acesso somente aos recursos de computação, como Compute Instances, Container Instances, Kubernetes Engine (OKE), etc.
Da mesma forma, os profissionais DBA terão acesso somente aos recursos de bancos de dados, como o Oracle NoSQL.
Além da separação por grupos de usuários, outra forma de organizar os recursos é através da distinção por "ambientes", como Produção (PRD), Homologação (HML) e Desenvolvimento (DEV).
Com base nessas definições, temos a seguinte estrutura de compartimento e subcompartimentos (child compartments) para o ambiente de produção (prd):
A partir do desenho, é possível observar que o grupo de usuários de redes (group-network) terá autorização para criar recursos de rede exclusivamente no compartimento cmp-network. Outros grupos de usuários, como o de aplicação (group-appl) e o de DBA (group-dba), também terão permissões restritas aos seus respectivos compartimentos (cmp-appl e cmp-database). Por fim, o grupo Administrators tem acesso total a todos os compartimentos.
Para criar um compartimento, utilize o seguinte comando:
Após a criação do compartimento, obteremos seu OCID que será utilizado na criação do próximo compartimentos, estabelecendo assim a hierarquia de compartimentos, igual ao que foi apresentado na imagem anterior.
Com o OCID do compartimento do ambiente de produção (prd), prosseguimos para a criação do próximo compartimento, que é o cmp-network:
A criação dos demais compartimentos seguem a mesma lógica e não serão apresentados aqui.
O script scripts/capitulo-2/compartment.sh contido no repositório "ocipizza-iac", inclui todos os comandos para a criação dos compartimentos da aplicação OCI PIZZA.
NOTA
A Oracle recomenda a criação e configuração de um compartimentos sandbox para proporcionar aos usuários um espaço dedicado para testar recursos. No compartimento sandbox, você pode conceder permissões aos usuários para criar e gerenciar recursos, enquanto mantém permissões mais restritivas nos demais compartimentos.
- TODO: os exemplos do livro utilizam o compartimento de produção apenas.
Políticas de Acesso
Uma Política de Acesso, Política ou Policy, é um documento que contém uma ou mais declarações destinadas a conceder acesso e autorizar, um grupo de usuários, em gerenciar determinado serviço ou recurso do OCI. A Policy permite especificar permissões em nível de compartimento ou para todo o Tenancy.
A concessão de acesso é feita a um grupo de usuários ou a um serviço, e não a um usuário específico. Além disso, todo grupo de usuários que é criado não possui nenhuma permissão de acesso, a menos que uma Policy tenha sido previamente definida. É responsabilidade do administrador do Tenancy conceder permissões ao grupo ou serviço por meio de uma ou mais policies.
Basicamente, a sintaxe geral da Policy possui o seguinte formato:

Policies sempre começam com a palavra Allow. Isso significa que as Policies que você cria apenas concedem ou autorizam acesso, não podendo negá-lo, uma vez que, por padrão, tudo já é negado.
Abaixo está o significado de cada uma das partes em destaque que compõem uma Policy:
Assunto
O elemento assunto pode especificar um Grupo de Usuários, Grupo Dinâmico ou serviços do OCI, utilizando uma das seguintes formas:
-
group
- Nome do Grupo de Usuários no qual o acesso será concedido.
-
group id
- OCID do Grupo de Usuários no qual o acesso será concedido.
-
dynamic-group
- Nome do Grupo Dinâmico no qual o acesso será concedido.
-
dynamic-group id
- OCID do Grupo Dinâmico no qual o acesso será concedido.
-
service
- Especifica o nome do serviço OCI no qual o acesso será concedido.
-
any-group
- Indica todos os Grupos de Usuários e Grupos Dinâmico do Tenancy.
Há também a sintaxe <Nome do Domínio de Identidade>/<Nome do Grupo> que pode ser utilizada para se referir a um Grupo de Usuários existente em um Domínio de Identidade que não é o Default.
NOTA
O livro utiliza o Domínio de Identidade Default, que é criado automaticamente durante o processo de ativação da conta. Para saber mais sobre Domínios de Identidade, consulte "Gerenciando Domínios de Identidade".
Verbo
O elemento verbo especifica o tipo de acesso que será concedido em relação as operações que podem ser feitas em uma determinada API de um determinado serviço. Seus valores incluem:
-
inspect
- Concede a autorização para listar recursos.
-
read
- Inclui as permissões do verbo inspect mais a capacidade de obter metadados do recurso.
-
use
- Inclui as permissões do verbo read mais a capacidade de poder atualizar o recurso (operações de update). Em geral, esse verbo não inclui a capacidade de criar ou excluir um recurso.
-
manage
- Inclui todas as permissões para o recurso.
NOTA
Como é possível perceber o nível de acesso é cumulativo à medida que você vai de inspect > read > use > manage.
Sabemos que, para cada serviço disponibilizado pelo OCI, existem uma ou mais APIs disponíveis, e cada API oferece uma funcionalidade específica relacionada ao serviço.
Em termos de concessão de acesso, por exemplo, o verbo inspect para o serviço de Load Balancer, inclui a permissão nomeada LOAD_BALANCER_INSPECT que concede acesso às APIs ListLoadBalancers, ListShapes, ListPolicies e ListProtocols.
NOTA
Normalmente, os nomes das APIs são autoexplicativos. No entanto, se você deseja obter informações detalhadas sobre os tipos de operações de uma API específica, consulte o link "API Reference and Endpoints".
O objetivo dos verbos é simplificar o processo de concessão de diversas permissões relacionadas. Para facilitar a compreensão, abaixo está um exemplo da correlação entre um verbo e as permissões associadas às APIs do serviço Load Balancer:
| Verbo | Permissão | API |
|---|---|---|
| inspect | LOAD_BALANCER_INSPECT | ListLoadBalancers, ListShapes, ListPolicies e ListProtocols |
| read | inspect + LOAD_BALANCER_READ | GetLoadBalancer, GetBackendSet, GetBackend, GetHealthChecker, etc. |
| use | read + LOAD_BALANCER_UPDATE e LOAD_BALANCER_MOVE | UpdateBackendSet, DeleteBackendSet, UpdateListener, etc. |
| manage | use + LOAD_BALANCER_CREATE e LOAD_BALANCER_DELETE | CreateLoadBalancer e DeleteLoadBalancer |
NOTA
O link "Referência da Política de Serviço Detalhada" contém todos os detalhes referente as permissões e operações às APIs para todos os serviços disponibilizados pelo OCI.
No exemplo abaixo, a Policy escrita concede ao grupo network-users, acesso a todas as APIs do serviço que gerencia VCNs em todo o Tenancy:
Compreender a relação entre permissões e as APIs disponíveis por serviço facilita a elaboração de Policies mais granulares em termos de acesso. Veremos adiante que é possível, por exemplo, conceder acesso apenas às APIs AddVcnCidr e RemoveVcnCidr do verbo manage, sem conceder acesso às demais APIs, como CreateVcn, UpdateVcn ou DeleteVcn.
Tipo do Recurso
O elemento tipo do recurso refere-se a um recurso específico ou a uma família de recursos.
Por exemplo, a família de recursos virtual-network-family abrange vários recursos específicos relacionados a VCN, como vcns, subnets, route-tables, security-lists, entre outros. Nesse contexto, vcns e subnets correspondem a recursos específicos, como VCNs e Sub-rede.
Trabalhar com um recurso específico ou uma família de recursos proporciona a flexibilidade de definir exatamente quais recursos terão acesso concedido.
Há também o tipo all-resources, que pode ser usado para fazer referência a todos os recursos do Tenancy.

NOTA
Consulte "Referência da Política de Serviço Detalhada" para verificar os tipos de recursos disponíveis e o nome da família de recursos à qual cada recurso pertence.
Local
O elemento local especifica o Compartimento ou Tenancy no qual a Policy concede acesso. Em outras palavras, ele define o escopo do acesso, que pode ser um compartimento específico ou todo o Tenancy.
Os seguintes valores que podem ser usados para o elemento local são:
-
tenancy
- Abrange todos os recursos do Tenancy.
-
compartment
- Usado para especificar o nome do compartimento onde a policy será aplicada. Se houver subcompartimentos abaixo do compartimento especificado, a policy se aplicará a todos os compartimentos a partir do nível mais alto da hierarquia.
-
compartment id
- Usado para especificar o OCID do compartimento onde a policy será aplicada.
Valores válidos para o elemento local também podem incluír um compartimento específico dentro de uma hierarquia de compartimentos:

Para compartment id, é possível utilizar apenas um valor OCID de um compartimento específico. Não é permitido fazer referência a uma hierarquia de compartimentos.
Condição
O elemento condição e é opcional e pode ser usado para restringir o escopo das permissões concedidas em uma política.
Uma condição é escrita utilizando a cláusula where, seguida de uma comparação que pode ser simples (uma única condição) ou que pode abranger múltiplas condições.
O exemplo abaixo demonstra a utilização de uma condição simples que usa o operador de negação != para excluír somente a permissão VCN_DELETE do grupo network-users. Com isso, os usuários desse grupo podem criar VCNs, listar ou atualizar suas informações, mas não têm permissão para excluir uma VCN.

Além de request.permission é possível utilizar request.operation para fazer referência a uma operação específica da API:

As condições podem ser agrupadas entre chaves na forma { condição-1, condição-2 } para avaliação. Para criar um OR lógico entre um conjunto de condições, utilize a palavra any. Para estabelecer um AND lógico entre um conjunto de condições, utilize all.
A policy de exemplo abaixo utiliza o operador any para criar um OR lógico, limitando o acesso do grupo network-users às operações de APIs AddVcnCidr ou RemoveVcnCidr.

Uma política de acesso pode ser criada da seguinte forma, utilizando o OCI CLI:
NOTA
A página da documentação do OCI sobre Políticas Comuns apresenta diversos exemplos de policies que podem servir como base para a elaboração das suas próprias políticas de acesso.
As Políticas de Acesso da Aplicação OCI PIZZA
O script scripts/capitulo-2/policy.sh contido no repositório "ocipizza-iac", inclui todas as políticas de acesso utilizadas pela aplicação OCI PIZZA.
3.6.3 Grupos Dinâmicos
Os Grupos Dinâmicos são um tipo especial de grupo projetado para agrupar recursos, em vez de usuários.
A finalidade dos Grupos dinâmicos é conceder acesso às APIs do OCI a uma instância de computação ou recurso, que podem incluir não apenas servidores virtuais, mas também servidores que fazem parte de um cluster Kubernetes (OKE) ou um Container Instances, por exemplo.
Uma vez que o Grupos Dinâmicos foi criado, também é necessário criar uma política de acesso para autorizar esse grupo a interagir com uma ou mais APIs do OCI. É importante destacar que os Grupos Dinâmicos inclui como membro um recurso específico, e o acesso concedido a esse recurso, conforme definido na política de acesso, permitirá que ele crie e gerencie outros recursos no OCI.
A definição de um recurso que faz parte do Grupo Dinâmico é feita através de um conjunto de regras de correspondência que especificam recursos através do uso das seguintes variáveis:
-
instance.compartment.id
- Especifica o compartimento onde a instância de computação reside.
-
instance.id
- Especifica o OCID da instância de computação.
-
tag.<tagnamespace>.<tagkey>.value
- Especifica o namespace da tag e a chave da tag que podem fazer referência a uma ou mais instâncias de computação no qual incluem as informações da tag especificada.
-
tag.<tagnamespace>.<tagkey>.value='<tagvalue>'
- Especifica além do namespace da tag e a chave da tag, é possível fazer referência ao valor que uma tag específica possui.
-
resource.compartment.id
- Especifica o compartimento onde o recurso reside.
-
resource.id
- Especifica o OCID do recurso.
-
resource.type
- Especifica o tipo do recurso.
NOTA
Consulte a página "Visão Geral do Serviço Tagging" para obter mais informações sobre o uso de tags em recursos.
Os operadores lógicos any (OR) e all (AND) podem ser utilizados para criar regras de correspondência em um Grupo Dinâmico.
Por exemplo, a imagem abaixo ilustra uma regra de correspondência de um Grupo Dinâmico instances-dyngrp, que incluem as instâncias de computação de um compartimento específico (instance.compartment.id) ou (OR lógico), uma única instância (instance.id):

NOTA
Os nomes dos Grupos Dinâmicos devem ser exclusivos em todo o Tenancy.
A partir do Grupo Dinâmico que foi definido, podemos escrever uma policy que concede acesso total aos objetos do serviço Object Storage dentro do compartimento especificado:

Em resumo, neste exemplo, a definição do Grupo Dinâmico e da policy associada permitem que qualquer instância de computação dentro do compartimento especificado, ou a instância identificada pelo seu OCID, manipule objetos do serviço Object Storage que estão armazenados no compartimento cmp-prd:cmp-appl.
Para criar um Grupo Dinâmico através do OCI CLI, utilize como exemplo o seguinte comando:
Grupos Dinâmicos da Aplicação OCI PIZZA
O script scripts/capitulo-2/dynamic-group.sh contido no repositório "ocipizza-iac", inclui os Grupos Dinâmicos utilizadas pela aplicação OCI PIZZA.
3.6.4 Limites e Cotas
Limites
Após a ativação da sua conta, o OCI estabelece um conjunto de limites para os recursos que você pode criar. Esses limites referem-se à quantidade máxima de recursos permitidos em seu Tenancy, e cada recurso ou serviço possui um limite específico.
Por exemplo, o OCI estabelece um limite inicial de criação de até seis Container Instances em todo o Tenancy, para contas que utilizam o modelo de cobrança Pay As You Go ou Trial (contas para avaliação). Em contrapartida, para contas que operam sob o modelo Oracle Universal Credits, o limite inicial é de até dois mil Container Instances.
NOTA
Todos os limites iniciais para os diversos serviços, seja para contas que utilizam o modelo de cobrança Pay As You Go, Trial ou Oracle Universal Credits, podem ser consultados na documentação oficial do OCI em "Limites do Serviço".
Para consultar o limite de um serviço específico utilizando o OCI CLI, é necessário, primeiramente, ter em mãos o "Nome do Serviço", conforme demonstrado no comando a seguir:
NOTA
O resultado do comando acima foi limitada devido à grande quantidade de serviços disponíveis no OCI. Você pode obter esse comando a partir do script scripts/capitulo-2/all-services.sh, que está contido no repositório "ocipizza-iac".
Uma vez que você tenha o nome do serviço, é possível consultar os limites associados a ele:
Neste caso, para o serviço de VPN que foi consultado, existem dois limites aplicáveis:
-
cpe-count
- Este limite indica que você pode ter até dez Customer Premises Equipment (CPE) em uma região específica. O CPE é um dispositivo que conecta sua rede local à rede do OCI, permitindo a comunicação entre os dois ambientes.
-
ipsec-connection-count
Solicitando Aumento dos Limites
Para solicitar aumento de limites para qualquer serviço do OCI, utilize a opção "Request a limit increase" da Web Console conforme demonstrado na figura abaixo:
Após isso, você será direcionado para um assistente virtual, onde deverá clicar no botão "Limit Increase" em duas telas consecutivas:
Um formulário será exibido, onde você deverá selecionar a categoria do serviço (Service Category), o recurso ou item relacionado ao serviço (Resource), o novo limite desejado para a região (sa-saopaulo-1 Region Limit), e fornecer uma justificativa (Reason for request). Em seguida, basta clicar no botão "Create Support Request":
Essa ação criará uma solicitação para a equipe do OCI, que, após análise, irá efetivar o novo valor solicitado. Toda a comunicação será realizada por meio do e-mail cadastrado do usuário que está solicitando o aumento do limite.
Cotas
Cotas ou Cotas de Compartimento são utilizadas para controlar a quantidade de recursos que podem ser criados dentro de um compartimento. As cotas de compartimento são semelhantes aos limites do serviço, mas a principal diferença é que os limites do serviço são estabelecidos pela Oracle, enquanto as cotas de compartimento são definidas pelos administradores do Tenancy ou por qualquer outro usuário que possua privilégios adequados.
De forma prática, você pode definir, por meio de cotas, o número máximo de Container Instances que podem ser criadas no compartimento cmp-appl, por exemplo. Isso permite um controle eficaz sobre a utilização dos recursos dentro de um compartimento.
Para definir cotas, utiliza-se uma linguagem declarativa própria, semelhante à utilizada nas políticas de acesso. Essa linguagem inclui três tipos de instruções que podem ser usadas. São elas:
-
zero
- Redefine todos os limites de cota de um recurso para zero.
-
unset
- Redefine as cotas de volta para os limites do serviço padrão.
-
set
- Define um número máximo de recursos que podem ser criados.
Por exemplo, o seguinte comando pode ser utilizado para restringir a criação de até oito Container Instances com processadores do tipo E4 nas regiões sa-saopaulo-1 ou sa-vinhedo-1:
Observe que, para aplicar a cota de forma eficaz, inicialmente zeramos o limite utilizando a instrução zero. Em seguida, com a instrução set, definimos o valor do limite para um item específico, que neste caso é a CPU do tipo E4, identificada como standard-e4-core-count, pertencente à família do serviço compute-core.
NOTA
As cotas para o serviço de Container Instances pertencem à mesma família compute-core que as cotas do serviço Compute Instances.
NOTA
A documentação disponível em Cotas Disponíveis por Serviço contém informações sobre todas as cotas disponíveis por serviço.
Cotas da Aplicação OCI PIZZA
O script scripts/capitulo-2/quotas.sh contido no repositório "ocipizza-iac", contém as cotas utilizadas pela aplicação OCI PIZZA.
3.6.5 Gerenciamento de Regiões
Um Tenancy dentro do modelo de cobrança Pay As You Go ou Free Tier é restrito a uma única região. Isso significa que, para utilizar outra região, você precisará solicitar uma inscrição para essa nova região.
O comando abaixo solicita a inscrição na região "Sudeste do Brasil (Vinhedo)":
Observe que a região é especificada por meio de sua chave, que neste caso é VCP.

Após alguns minutos, você poderá verificar que a região solicitada já está disponível para uso (STATUS: READY):
3.6.6 Serviço Audit
O Serviço Audit registra automaticamente todas as chamadas e ações realizadas nas APIs do OCI, proporcionando um histórico detalhado das operações executadas em sua conta.
Os eventos de log registrados pelo Serviço Audit incluem todas as chamadas feitas as APIs do OCI, seja através do Web Console, OCI CLI, SDK ou qualquer outra forma personalizada de interação com as APIs REST do OCI. Esses dados de eventos podem ser utilizados para realizar diagnósticos e monitorar atividades relacionadas à criação, exclusão ou modificação de qualquer recurso em seu Tenancy.
Para ilustrar melhor o uso do Audit, imagine que você deseja descobrir quem excluiu uma determinada VCN do seu Tenancy. Como o Serviço Audit fornece informações sobre as interações realizadas com as APIs do OCI, o primeiro passo é identificar o nome da ação que o Serviço de Redes utiliza para excluir uma VCN.
Os nomes das ações disponíveis para operações relacionadas a uma VCN podem ser encontrados diretamente na documentação "API Reference and Endpoints":
A maneira mais simples de visualizar os eventos registrados pelo Serviço Audit é através do Web Console. Para isso, acesse o "menu de hambúrguer" e navegue até "Identity & Security > Audit".
Depois de identificar o nome da ação (DeleteVcn), insira-o no campo Keywords do serviço Audit. Como o serviço registra todas as interações com as APIs, você encontrará uma vasta quantidade de registros a serem analisados. Para este exemplo, vamos filtrar apenas as ocorrências do método HTTP DELETE, definindo um intervalo de datas e horários de início e fim mais restrito:
NOTA
O OCI opera em UTC (Tempo Universal Coordenado) para garantir consistência global, facilitando a integração entre sistemas em diferentes fusos horários e evitando confusões relacionadas à conversão de horários. Nos exemplos deste livro, o fuso horário utilizado é sempre GMT-3. Assim, um registro com o horário de 13:00 UTC corresponde a 10:00 em GMT-3.
Para cada resultado exibido, há um conjunto de informações que permite identificar o usuário que realizou a ação DeleteVcn:

NOTA
Consulte a documentação através do link "Conteúdo de um Evento de Log de Auditoria", que apresenta o nome e a descrição de todos os campos registrados pelo Serviço Audit.
É possível também obter os eventos pelo OCI CLI porém como já mencionado aqui, para consultas simples é mais fácil e prático consultar os dados pela Web Console.
O comando abaixo lista todos os eventos dentro do intervalo de tempo especificado pelos parâmetros --start-time e --end-time:
NOTA
A data e a hora para consulta devem ser informadas em um dos formatos especificados na RFC 3339 - Date and Time on the Internet: Timestamps.
Para o comando exibido, existe a opção --stream-output, que redireciona todo o resultado para o stdout. Como normalmente há uma grande quantidade de informações e eventos, essa opção é útil para direcionar o fluxo de dados para um stream, que pode, por exemplo, encaminhar as informações para um Serviço Analytics usado para processar e visualizar os dados de forma mais eficaz.