PutPolicy - Amazon Private Certificate Authority
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

PutPolicy

以下 Java 示例显示了如何使用该PutPolicy操作。

该操作将基于资源的策略附加到私有 CA,从而实现跨账户共享。获得政策授权后,位于另一个 Amazon 账户中的主体可以使用不属于自己的私有 CA 颁发和续订私有终端实体证书。您可以通过调用操作来找到私有 CA 的 ARN。ListCertificateAuthorities有关策略的示例,请参阅基于资源的策略的 Amazon 私有 CA 指导。

将策略附加到 CA 后,您可以使用GetPolicy操作对其进行检查,也可以使用DeletePolicy操作将其删除。

package com.amazonaws.samples; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.services.acmpca.AWSACMPCA; import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder; import com.amazonaws.AmazonClientException; import com.amazonaws.services.acmpca.model.PutPolicyRequest; import com.amazonaws.services.acmpca.model.PutPolicyResult; import com.amazonaws.services.acmpca.model.AWSACMPCAException; import com.amazonaws.services.acmpca.model.ConcurrentModificationException; import com.amazonaws.services.acmpca.model.InvalidArnException; import com.amazonaws.services.acmpca.model.InvalidStateException; import com.amazonaws.services.acmpca.model.InvalidPolicyException; import com.amazonaws.services.acmpca.model.LockoutPreventedException; import com.amazonaws.services.acmpca.model.RequestFailedException; import com.amazonaws.services.acmpca.model.ResourceNotFoundException; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class PutPolicy { public static void main(String[] args) throws Exception { // Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try { credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); } // Define the endpoint for your sample. String endpointRegion = "region"; // Substitute your region here, e.g. "us-west-2" String endpointProtocol = "https://acm-pca." + endpointRegion + ".amazonaws.com/"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion); // Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build(); // Create the request object. PutPolicyRequest req = new PutPolicyRequest(); // Set the resource ARN. req.withResourceArn("arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566"); // Import and set the policy. // Note: This code assumes the file "ShareResourceWithAccountPolicy.json" is in a folder titled policy. String policy = new String(Files.readAllBytes(Paths.get("policy", "ShareResourceWithAccountPolicy.json"))); req.withPolicy(policy); // Retrieve a list of your CAs. PutPolicyResult result = null; try { result = client.putPolicy(req); } catch (ConcurrentModificationException ex) { throw ex; } catch (InvalidArnException ex) { throw ex; } catch (InvalidStateException ex) { throw ex; } catch (InvalidPolicyException ex) { throw ex; } catch (LockoutPreventedException ex) { throw ex; } catch (RequestFailedException ex) { throw ex; } catch (ResourceNotFoundException ex) { throw ex; } catch (AWSACMPCAException ex) { throw ex; } } }